可观察集合:管理事件

本文关键字:管理 事件 集合 观察 | 更新日期: 2023-09-27 18:23:56

在 MVVM 模式下工作

T是一个类,来自我的 EDMX 文件(实体框架(。

O是一个ObservableCollection<T>.

O填充了数据库中的所有T

然后,T的某些字段由用户从GUI编辑。

如何触发此事件?

我不想编辑我的 edmx 文件,我更喜欢保持它生成的样子。所以,这意味着我不能使用这样的东西,因为我应该修改我的模型,实现INotifyPropertyChanged

可观察集合:管理事件

我认为您不应该直接在视图 (GUI( 中与 EDMX 中的模型对象进行交互。创建一个视图模型来包装你的模型类T,让你的新视图模型实现INotifyPropertyChanged,并在ObservableCollection中使用它。在创建视图模型时传入模型对象。当视图模型上的属性发生更改时,更新模型对象并触发PropertyChanged事件(我使用 YourEdmxClass 代替T T因为它经常与泛型一起使用(:

public class YourEdmxClassViewModel : ViewModel
{
    private YourEdmxClass model;
    public YourEdmxClassViewModel(YourEdmxClass model)
    {
        this.model = model;
    }
    public int SomeProperty
    {
        get { return this.model.SomeProperty; }
        set
        {
            this.model.SomeProperty = value;
            this.RaisePropertyChanged(() => this.SomeProperty);
        }
    }
}