gpt4 book ai didi

c# - 实现每个属性更改跟踪

转载 作者:行者123 更新时间:2023-11-30 18:38:25 27 4
gpt4 key购买 nike

我正在使用 MVVM 模式编写一个 C# 应用程序,我想知道在每个属性的基础上实现更改跟踪的最佳方法是什么。我目前实现了 INotofyPropertyChanged 并标记整个对象是否脏,但我必须实现的一些要求是他们希望能够通过 UI 上的文本框为每个已更改的属性显示图像。

基本上我的 View 模型都有一个私有(private)字段,它是我的类,其中包含来 self 的数据访问层的数据。所以基本上一个类看起来像这样:

private BusinessObj _data


public Name
{
get{ return _data.Name;}
set
{
if(_data.Name != value)
{
_data.Name = value;
PropertyChanged("Name");
IsDirty = true;
}
}
}

我的数据访问层基本上是序列化和反序列化 XAML 配置文件以配置我们的产品。

最佳答案

您可以在您的模型类中使用 ObservableCollection,并让您的 UI 在可观察的业务数据集合发生变化时订阅该事件。

在模型 View 中

public class BusinessObjList : ObservableCollection<BusinessObj>
{
public BusinessObjList() : base()

public void AddBusinessObj
{
// your own manipulation
}
}

在用户界面中

BusinessObjList BL = new BL();
BL.CollectionChanged += new NotifyCollectionChangedEventHandler(bl_CollectionChanged);

static void bl_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// handle the change in UI.
}

关于c# - 实现每个属性更改跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318559/

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