ItemsPanelTemplate问题

时间:2016-03-19 14:13:20

标签: c# wpf xaml

我需要使用Grid作为PanelTemplate。这不是什么大问题,但我需要在Grid中有其他控件。所以我的ItemsControl看起来像这样:

<ItemsControl x:Name="itemscontname" ItemsSource="{Binding Fields}" Grid.Column="0"
              ItemsPanel="{StaticResource gridKey}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button .../>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemContainerStyle>
         <Style>
            <Style.Setters>
                <Setter Property="Grid.Row" Value="{Binding RowNumber}" />
                <Setter Property="Grid.Column" Value="{Binding ColumnNumber}" />
            </Style.Setters>
         </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

我的ItemsPanelTemplate:

<ItemsPanelTemplate x:Key="gridKey">
    <Grid Grid.Row="0" Grid.Column="0" >
        <Grid.RowDefinitions>
                ....
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
                ....
        </Grid.ColumnDefinitions>
     </Grid>
</ItemsPanelTemplate>

那没关系,它有效。但是在这个Grid中我想说,让我们说TextBlock

<ItemsPanelTemplate x:Key="gridKey">
    <Grid Grid.Row="0" Grid.Column="0" >
        <Grid.RowDefinitions>
                ....
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
                ....
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Row="0" Grid.Column="0" 
                   Text="{Binding SomeTextFromVM}"/>
     </Grid>
</ItemsPanelTemplate>

当我这样做时,它会破坏一切。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您通常会在ItemsControl的object中添加元素,除Template模板外,您还可以使用这些元素。

但是,您无法在ItemsPanel(由ItemsPresenter管理)中将这些元素添加到网格中。

ItemsPanel