将列表绑定到网格面板

时间:2013-12-20 14:37:51

标签: c# wpf

我可以将列表绑定到wpf网格吗?列表中的每个对象都有一个要绑定的行和列属性。

注意:我不想使用DataGrid。

1 个答案:

答案 0 :(得分:3)

您无法直接绑定到Grid。但是,您可以使用ItemsControl,将ItemsPanel更改为Grid,将ItemsControl.ItemContainerStyle绑定Grid.ColumnGrid.Row更改为如下所示:

<ItemsControl ItemsSource="{Binding Path=MyItems}">
   <ItemsControl.ItemsPanel>
       <ItemsPanelTemplate>
           <Grid>
               <Grid.ColumnDefinitions>
                   <ColumnDefinition/>
                   <ColumnDefinition/>
                   <ColumnDefinition/>
               </Grid.ColumnDefinitions>
               <Grid.RowDefinitions>
                   <RowDefinition/>
                   <RowDefinition/>
                   <RowDefinition/>
               </Grid.RowDefinitions>
           </Grid>
       </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemContainerStyle>
       <Style>
           <Setter Property="Grid.Row" Value="{Binding Path=Row}"/>
           <Setter Property="Grid.Column" Value="{Binding Path=Col}"/>
       </Style>
   </ItemsControl.ItemContainerStyle>
</ItemsControl>