3

所以,我的课程是由 EF 自动生成的:

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Testje.Models
{
    using System;
    using System.Collections.Generic;

    public partial class Ploeg
    {
        public Ploeg()
        {
        }

        public int Id { get; set; }
        public string Naam { get; set; }
        public string Icon { get; set; }
    }
}

当其中一个属性发生变化时,我想做一个 notifypropertychange。如果不编辑这个生成的类,这是否可能?

4

3 回答 3

0

这是可能的,但我强烈建议不要这样做!在模型中添加 INotifyPropertyChanged 会导致关注点分离不良。

使用事件突出显示模型已更改。看看这里是如何工作的:MSDN on standard event pattern

甚至更好:MSDN 在事件模式中引用了 Albahari Bros

在您的视图模型中,实现 INotifyProperty 已更改。让您的 ViewModel 监听模型中的事件,调整数据并通过 INotifyPropertyChanged 将其推送到您的视图

于 2012-11-18T18:36:52.980 回答
0

是的,您可以使用名为 PropertyChanged.Fody 的 NuGet 包。安装包,然后创建另一个部分类,添加 [ImplementPropertyChanged] 属性,如下所示;

using PropertyChanged;

[ImplementPropertyChanged]
public partial class Ploeg
{
}

就是这样。

有关更多信息,请参阅GitHub

于 2016-11-04T16:38:29.117 回答
0

就我而言,我添加了

INotifyPropertyChanged

作为继承,似乎很有魅力。使用 EF 生成类(Request_Comment 生成类 EF)

例子:

namespace Requesto
{
    public partial class Request_Comment : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, e);
            }
        }
    }

}
于 2018-09-12T11:56:21.440 回答