111,092
社区成员




<DataGrid ItemsSource="{Binding Table0}" AutoGenerateColumns="False">
<DataGrid.Columns >
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<!--......-->
</DataGrid.Columns>
</DataGrid>
后端这么写
using System.ComponentModel;
public partial class MainWindow : Window,INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
private DataView table0;
public DataView Table0
{
get { return table0; }
set { table0 = value; PropertyChanged?.Invoke(this,new PropertyChangedEventArgs("Table0"));}
}
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) //前端主窗体Loaded事件
{
DataTable table = new DataTable();
DataColumn column0 = new DataColumn("ID");
DataColumn column1 = new DataColumn("Name");
//......
table.Columns.Add(column0);
table.Columns.Add(column1);
//......
Table0 = table.DefaultView;
}
}
DataGrid绑定数据源Table0,想要UI填写的表数据,就用Table0.Table,表数据是跟着UI实时更新的DataTable table = new DataTable();
DataColumn column0 = new DataColumn("序号");
DataColumn column1 = new DataColumn("器件名称");
table.Columns.Add(column0);
table.Columns.Add(column1);
DataRow row0 = table.NewRow();
row0["ID"]="DataGrid里第一行ID值";
row0["器件名称"]="DataGrid里第一行器件名称值";
table.Rows.Add(row0);