gpt4 book ai didi

c# - 制作一个适合 Property Change Notification 的类

转载 作者:太空狗 更新时间:2023-10-30 00:24:02 25 4
gpt4 key购买 nike

要在 WPF 中实现数据绑定(bind),根据 MS 的说法,“类需要提供适当的属性更改通知”。 [ ref here ]

据我所知,部分设置意味着采取以下步骤,如果尚未在类里面设置(MSDN 上的引用 this article):

  • 当属性发生变化时,它们需要调用一个方法来引发事件。
    • 这意味着必须更改自动实现的属性,以便它们使用私有(private)支持字段,因此 set 可以更改属性并调用方法来引发事件。
  • 该类需要实现 INotifyPropertyChanged。
  • 该类需要声明 PropertyChangedEventHandler 事件。
  • 事件需要像这样引发:

...

// Create the OnPropertyChanged method to raise the event 
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}

如果我已经有许多不采取任何这些步骤的现有类,那么更改这些类的最佳方法是什么,以便它们仅在满足这些标准所需的范围内进行更改

最佳答案

如果您想要对代码影响最小的解决方案,那么您需要 Fody PropertyChanged weaver .这是使用 Install-Package PropertyChanged.Fody 或通过 VS 包管理器对话框作为 NuGet 包安装的。

安装后,您可以使用[ImplementPropertyChanged] 属性标记一个类,您的工作就基本完成了。编织器将通过操作生成的 IL 来在编译时添加相关的事件调用,这意味着您不必在代码中显式实现接口(interface)或事件调用。您也可以保留自动实现的属性语法!

链接的文档提供了更多高级案例的详细信息,但根据我的经验,开箱即用的行为足以满足几乎所有需求。

关于c# - 制作一个适合 Property Change Notification 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30718724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com