小编Ume*_*ase的帖子

如何在 C# 中 PropertyChanged 事件的 INotifyPropertyChanged 实现中捕获旧值和新值

我需要在 PropertyChanged 事件处理程序中捕获旧值、新值和属性名称。INotifyPropertyChanged 的​​默认实现仅提供属性的名称。因此,在互联网上搜索后,我在这里发现了类似的问题,属性的扩展实现已更改。

以下是该 Q 和接口声明的链接:

NotifyPropertyChanged 事件,其中事件参数包含旧值

public interface INotifyPropertyChangedExtended<T>
{
    event PropertyChangedExtendedEventHandler<T> PropertyChanged;
}
Run Code Online (Sandbox Code Playgroud)

公共委托 void PropertyChangedExtendedEventHandler(对象发送者, PropertyChangedExtendedEventArgs e);

上面的接口将解决我的问题,但是我不明白如何在我的实体类上实现通用接口,因为 T 将根据属性的数据类型而改变。

谁能帮助我理解,是否可以用 T 参数实现这个接口。这个示例的实现将会非常有帮助。

预先感谢您的帮助。

乌梅什

编辑 #1:根据 Peter 的回复,发布更新的代码,这对于想要在 PropertyChanged 事件中捕获旧值和新值的人可能有用。

    public class PropertyChangedExtendedEventArgs : PropertyChangedEventArgs
{
    public string OldValue { get; set; }

    public string NewValue { get; set; }

    public PropertyChangedExtendedEventArgs(string propertyName, string oldValue, string newValue) : base(propertyName)
    {
        OldValue = oldValue;
        NewValue = newValue;
    }
}

    //
// Summary:
//     Notifies clients …
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1