0

我有 WPF 应用程序,我在其中使用一些基本类。我还使用Fody PropertyChanged和 EF 6.1.3。每当更改任何属性时,我都会尝试更改属性 SaveNeeded。所以我写了这个类:

 public class Foo : INotifyPropertyChanged
{
    public Foo()
    {
        PropertyChanged += Foo_PropertyChanged;
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public string GivenNames { get; set; }

    public int Id { get; set; }

    [NotMapped]
    public bool SaveNeeded { get; set; }

    private void Foo_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        SaveNeeded = true;
    }
}

当我创建新的 Foo 然后更改一些属性时,它会像我想的那样工作。但是当我尝试使用 EF 从数据库中获取 Foo 时,会触发 PropertyChanged 事件。有什么建议如何从数据库中获取 Foo 而不是触发 PropertyChanged?

谢谢你!!

4

1 回答 1

0

好的,感谢您的建议,我这样做了:

  public class Foo : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    public string GivenNames { get; set; }

    public int Id { get; set; }
}

 public class FooViewModel : Foo
{

    public bool SaveNeeded { get; set; }

    public void NoticeChanges()
    {
        PropertyChanged += FooViewModel_PropertyChanged;
    }

    private void FooViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        SaveNeeded = true;
    }
}

所以我Foo从数据库中获取,使用 Automapper 映射属性,然后调用NoticeChanges.

于 2017-06-16T10:05:13.093 回答