当前已经有一个DataGrid,并且绑定了ItemSource进行数据显示。现在需要根据数据库一张表中的数据字段(例如Students表中的Name字段)在这个DataGrid中动态添加列。并实现前端根据Students表实时进行更新。
代码:
<DataGrid ItemsSource="{Binding Schools,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedBeam}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{ Binding Path=Number}" IsReadOnly="True">
<DataGridTextColumn.Header>
<TextBlock Text="Number" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid > 当前DataGrid中已有一列表头为Number的的数据,想根据另一个数据源Students中的Name值自动生成对应列(例如表中有Name为Tom和Jimmy,表中会新增Tom、Jimmy为表头的两列)并且数据可以实时根据数据库进行刷新。各位大佬,请赐教!
代码:
<DataGrid ItemsSource="{Binding Schools,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedBeam}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{ Binding Path=Number}" IsReadOnly="True">
<DataGridTextColumn.Header>
<TextBlock Text="Number" />
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid > 当前DataGrid中已有一列表头为Number的的数据,想根据另一个数据源Students中的Name值自动生成对应列(例如表中有Name为Tom和Jimmy,表中会新增Tom、Jimmy为表头的两列)并且数据可以实时根据数据库进行刷新。各位大佬,请赐教!
column1.Header="xxx";
column1.Binding = new Binding("Class.Name");
dataGrid.Columns.Add(column1);即使是显示出了Name的值,数据也不会动态更新,因为是不同的数据源,除非name也在Schools中定义。类似 Binding Path=Number绑定方式,会从当前行去找数据对象,而数据对象是由数据集提供的,不同的数据集是不会更新数据的。
看下是不是你想要的
除非name也在Schools中定义