ObservableCollection:管理事件

时间:2014-09-23 07:00:46

标签: c# wpf events mvvm observablecollection

在MVVM模式下工作

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

OObservableCollection<T>

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

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

如何解雇此事件?

我不想编辑我的edmx文件,我更喜欢保持它的生成方式。所以,这意味着我无法使用this之类的内容,因为我应该修改我的模型,实现INotifyPropertyChanged

1 个答案:

答案 0 :(得分:1)

我认为你不应该直接在视图(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);
        }
    }
}