C# 属性更改时,将绑定到Datagrid的ObservableCollection发送到数据库
我将一个数据网格绑定到一个C# 属性更改时,将绑定到Datagrid的ObservableCollection发送到数据库,c#,wpf,mvvm,datagrid,C#,Wpf,Mvvm,Datagrid,我将一个数据网格绑定到一个可观察集合,作为其项资源。然后,每个列都绑定到模型中保存的T类型属性 当用户更改单元格时,它会更改模型中的属性,并调用集合,然后我想将整个ObservableCollection写入我的数据库,但我不知道如何使此更改显示在ObservableCollection所在的ViewModel中 这是我的班级模型。更改percentage属性时,我只想使用ViewModel中更新的ObservableCollection更新数据库。我没有使用DataTable,因为它不是SQL
可观察集合
,作为其项资源
。然后,每个列都绑定到模型中保存的T类型属性
当用户更改单元格时,它会更改模型中的属性,并调用集合,然后我想将整个ObservableCollection
写入我的数据库,但我不知道如何使此更改显示在ObservableCollection
所在的ViewModel中
这是我的班级模型。更改percentage属性时,我只想使用ViewModel中更新的ObservableCollection
更新数据库。我没有使用DataTable,因为它不是SQL数据库
class MyObject : INotifyPropertyChanged
{
private string name;
private int percentage;
public int Percentage
{
get
{
return percentage;
}
set
{
percentage = value;
System.Diagnostics.Debug.WriteLine(percentage);
doSomething();
OnPropertyChanged("Percentage");
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public MyObject(string name, int percent)
{
Name = name;
Percentage = percent;
}
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(String propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
protected virtual void NotifyPropertyChanged(String propertyName = "")
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
所以现在当你对一个单元格进行更改时,源代码没有得到正确的更新,对吗?对不起,不清楚。单元格中的更改将正确更新属性。集合还显示正确的值,但不调用集合,因为它只是一个属性更改,而不是对集合的实际添加或删除。由于具有属性的类位于模型中,因此它无法访问ViewModel中的集合,但我需要将整个集合写入数据库。还有一个ctor,您还可以传递对集合的引用。