即时通过Wpf和Ef Code First使用Mvvm模式
我有一个WPF DataGrid绑定到MVVM应用程序中的可观察集合,用于插入和更新数据到DataBase。并在viewmodel和model中实现了INotifyPropertyChanged
当我使用observable collection Local而不过滤将数据保存到DataBase
但使用“Where”过滤器未插入时
此属性在添加新命令时创建新实例模型;
public TypeTable TypeTableData { get; set; }
实体是dbset
public readonly IDbSet<TypeTable> Entity;
此可观察集合过滤器行显示数据网格中的数据
public ObservableCollection<TypeTable> _List;
public ObservableCollection<TypeTable> TypeList
{
get {Entity.load; _List= new ObservableCollection<TypeTable>(Entity.Local.Where(x => x.name== "MyFilter"));
return _List;
}
set
{
if (_List!= value)
{
_List= value;
NotifyPropertyChanged("TypeList");
}
}
}
这项工作完美并在数据网格中显示列表但是当添加新行到网格并保存到数据库不起作用并在数据库中保存空白
但当我使用ObservableCollection与本地精细工作并将Row插入数据库
时 public ObservableCollection<TypeTable> _List;
public ObservableCollection<TypeTable> TypeList
{
get
{
Entity.load; _List= new ObservableCollection<TypeTable>(Entity.Local);
return _List;
}
set
{
if (_List != value)
{
_List = value;
NotifyPropertyChanged("TypeList");
}
}
}
这是使用RelayCommand Call In View添加新的保存命令:
public void DoSaveBank()
{
Entity.AddOrUpdate(TypeTableData);
Context.SaveChanges();
}
public void DoAddNewBank()
{
TypeTableData = new TypeTable();
NotifyPropertyChanged("TypeTableData");
}
这是Xaml代码
<DataGrid Grid.Row="1" AutoGenerateColumns="False" ItemsSource="{Binding TypeList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=TypeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
如何解决这个问题?
谢谢