我在TechNet上发现了这个代码示例,它展示了如何绑定单个列标题和相应的列数据:
我的问题是如何将DataGrid的ItemSource绑定到多列数据:
我希望能为以上列表中的每个数据元素获得一列,那么如何实现呢?
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<TextBlock Text="{Binding DataContext.HeaderNameText, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
数据网格(DataGrid)的数据上下文(DataContext)设置如下:
Data data = new Data();
data.HeaderNameText = "Header2";
data.Items = new List<string>() { "Item1", "Item2" };
DataContext = data;
Data类的结构如下:
public class Data
{
public string HeaderNameText { get; set; }
public List<string> Items { get; set; }
}
我的问题是如何将DataGrid的ItemSource绑定到多列数据:
List<Data> data=new List<Data>();
我希望能为以上列表中的每个数据元素获得一列,那么如何实现呢?
Data
对象列表,那么你也会有多个Items
,这对我来说没有太多意义。难道把一个对象列表中的值和列标题分别设置不是更合理吗? - Jerrington