c# - 如何绑定到集合的特定元素?
问题描述
例如,我有一个集合,其中数据存储如下:
class MyVector3
{
double X { get; set; }
double Y { get; set; }
double Z { get; set; }
}
ObservableCollection<MyVector3> Positions { get; } = new ObservableCollection<MyVector3>();
Positions.Add(new MyVector3() { X = 0.0, Y = 0.0, Z = 0.0 });
Positions.Add(new MyVector3() { X = 1.0, Y = 1.0, Z = 1.0 });
Positions.Add(new MyVector3() { X = 2.0, Y = 2.0, Z = 2.0 });
...
在图像中表示,如下所示。
我想在 Positions 属性中绑定特定元素的值。
class ModelData
{
List<MyVector3> ModelPositions { get; set; }
...
}
SomeCollection<ModelData> ModelDatas { get; } = new SomeCollection<ModelData>();
ModelDatas.Add(new ModelData() // ModelData 1
{
ModelPositions = new List<MyVector3>()
{
Positions[0],
Positions[3],
Positions[9],
...
};
});
ModelDatas.Add(new ModelData() // ModelData 2
{
ModelPositions = new List<MyVector3>()
{
Positions[4],
Positions[3],
Positions[7],
Positions[10],
...
};
});
...
Positions 属性的状态始终在变化。元素可以添加或删除,元素的数据也可以更改。所有这些更改都应该反映到 ModelData 对象中。
在上面的示例代码中,ModelData 1 和 ModelData 2 共享 Postions 属性的索引 3 的值。如果 Positions 属性的索引 3 元素的值发生了变化,那么如何仅将这种变化通知到添加到 ModelDatas 属性中的 ModelData 1 和 ModelData 2 的元素?
解决方案
推荐阅读
- javascript - 平移时标记和轴标签随机不同步
- python - python错误中的随机密码生成器
- javascript - 使用 NodeJS 发送自动电子邮件
- javascript - 正则表达式捕获两种不同的格式
- python - 模型错误,TypeError: on_delete 必须是可调用的
- sql - 甲骨文 SQL。如何在“THEN”输出一个字母后跟 4 个数字的语句时创建一个案例
- powershell - 使用 RDP 登录时应用 GPO
- reactjs - FieldArray fields.push({ no, id }) - 没有属性可以显示,但 id 属性不能
- swift - SwiftUI 中 Picker 的增量范围
- gdb - 无法通过修改 EIP 寄存器执行系统功能