我需要使用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>
当我这样做时,它会破坏一切。我该如何解决这个问题?
答案 0 :(得分:0)
您通常会在ItemsControl的object
中添加元素,除Template
模板外,您还可以使用这些元素。
但是,您无法在ItemsPanel(由ItemsPresenter管理)中将这些元素添加到网格中。
ItemsPanel