【发布时间】:2014-06-20 20:48:41
【问题描述】:
我是 WPF 新手。我正在使用 MVVM 开发应用程序。我需要构建一个数据网格,其中列标题应绑定到列表或集合。并且列数应该等于列表中以相应标题为列表元素的元素数。
我从 MSDN 获得了这个示例代码。
MainWindow.xaml
<Grid>
<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>
</Grid>
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Data data = new Data();
data.HeaderNameText = "Header2";
data.Items = new List<string>() { "Item1", "Item2" };
this.DataContext = data;
}
}
这里 HeaderNameText 是一个字符串,我需要它是一个 List 来生成 Column,每个 Header 作为列表的一个元素。
我找了很多,找不到有用的东西
【问题讨论】: