wpf datagrid双向绑定
时间: 2023-09-08 19:15:13 浏览: 86
WPF DataGrid双向绑定
WPF DataGrid 双向绑定可以使用以下步骤实现:
1. 创建一个数据模型类,该类应该包含您想要在 DataGrid 中显示的属性。确保实现 INotifyPropertyChanged 接口,以便在属性更改时通知 UI。
```
public class Person : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
name = value;
OnPropertyChanged("Name");
}
}
private int age;
public int Age
{
get { return age; }
set
{
age = value;
OnPropertyChanged("Age");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
```
2. 在 XAML 中创建 DataGrid,并将其 ItemsSource 属性绑定到一个 ObservableCollection<Person> 对象上。确保将 CanUserAddRows 属性设置为 true,以便允许用户添加新行。
```
<DataGrid x:Name="myDataGrid" ItemsSource="{Binding People}" CanUserAddRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
</DataGrid.Columns>
</DataGrid>
```
3. 在代码中创建一个 ViewModel 类,并将其 DataContext 属性设置为 ViewModel 实例。确保在 ViewModel 类中实例化 ObservableCollection<Person> 对象,并将其命名为 People。
```
public class ViewModel
{
public ObservableCollection<Person> People { get; set; }
public ViewModel()
{
People = new ObservableCollection<Person>();
People.Add(new Person { Name = "John", Age = 30 });
People.Add(new Person { Name = "Jane", Age = 25 });
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
```
现在,您的 DataGrid 将双向绑定到 ObservableCollection<Person> 中的数据。当用户编辑单元格时,数据模型类中的属性将自动更新,反之亦然。
阅读全文