阅读量:4
在WPF中,可以通过以下步骤实现动态绑定数据到DataGrid:
创建一个ObservableCollection集合,用于存储要绑定到DataGrid的数据。该集合继承自INotifyPropertyChanged接口,以便在数据发生变化时通知DataGrid更新。
在XAML文件中,使用DataGrid标签创建一个DataGrid控件,并设置AutoGenerateColumns属性为False。这样可以手动定义列的样式和绑定路径。
在.cs文件中,将ObservableCollection集合作为DataGrid的ItemsSource属性的值进行绑定。同时,使用DataGridTextColumn标签设置每一列的样式和绑定路径。
下面是一个示例代码:
在.xaml文件中:
<DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" ItemsSource="{Binding MyDataCollection}"> <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}" /> <DataGridTextColumn Header="Age" Binding="{Binding Age}" /> </DataGrid.Columns> </DataGrid>
在.cs文件中:
public class Person { public string Name { get; set; } public int Age { get; set; } } public partial class MainWindow : Window { public ObservableCollection<Person> MyDataCollection { get; set; } public MainWindow() { InitializeComponent(); MyDataCollection = new ObservableCollection<Person> { new Person { Name = "John", Age = 25 }, new Person { Name = "Alice", Age = 30 }, new Person { Name = "Bob", Age = 40 } }; DataContext = this; } }
在这个示例中,MyDataCollection是一个ObservableCollection集合,存储了Person对象的数据。在构造函数中,我们创建了一些Person对象,并将它们添加到MyDataCollection集合中。然后,将MainWindow实例作为DataContext,将MyDataCollection集合绑定到DataGrid的ItemsSource属性上。最后,使用DataGridTextColumn标签,设置了Name和Age列的样式和绑定路径。
当MyDataCollection集合中的数据发生改变时,DataGrid会自动更新显示的数据。