gpt4 book ai didi

c# - 使用 PropertyChangedCallback 支持添加动态属性的最佳实践?

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:56 25 4
gpt4 key购买 nike

我有一个具有三个属性 (x1,x2,x3) 和该属性的 PropertyChangedCallback 的对象集合。

此集合绑定(bind)到 Wpf DataGrid。然后我想用像“x1+x2”这样的公式向这个对象添加一个动态属性(用户定义的不是我),当x1改变时动态属性支持PropertyChangedCallback也提高 propertychanged。

解决这种情况的最佳做法是什么?

最佳答案

最初你可以声明一个Dictionary 属性;在你的课上。在运行时将属性名称作为 Key 添加到字典中,并将属性的值添加到相应的键中。使用 IValueConverter 将字典绑定(bind)到 View 。在转换器 Convert 方法中编写代码以使用键或索引获取动态属性的值。每当属性 x1 或 x2 发生更改时,更新 x3 值 (x1 + x2),然后为 x1/x2 和字典发出属性更改通知。

例如:

private Dictionary< string,object > properties;
public Dictionary<string, object> Properties
{
get { return properties; }
set { properties = value; }
}

private int x1;

public int X1
{
get { return x1; }
set
{
x1 = value;
UpdateDictionaryValue(); // Updates the current X3 Value
OnPropertyChanged("X1");
OnPropertyChanged("Properties");
}
}
public void UpdateDictionaryValue()
{
if (Properties.ContainsKey("X3"))
{
Properties["X3"] = X1 + X2;
}
}

让我知道这是否有帮助。

关于c# - 使用 PropertyChangedCallback 支持添加动态属性的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24236732/

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