我的实体模型中有一个叫做价格的表。它有几个字段名为value0、value1、value2、value3、value4…(这些是它们的字面名称,叹息…)。我无法重命名或以任何方式更改它们。
我想要的是使用一个扩展实体来创建一个名为values的新属性。这将是一个包含value1、value2等的集合。。。
为了获得这些值,我只需要写下prices.values[1]
我需要财产变更通知。
到目前为止,我已经试过了;
public partial class Prices
{
private ObservableCollection<double?> values = null;
public ObservableCollection<double?> Values
{
get
{
if (values != null)
values.CollectionChanged -= values_CollectionChanged;
else
values = new ObservableCollection<double?>(new double?[14]);
values[0] = value0;
values[1] = value1;
values[2] = value2;
values.CollectionChanged += values_CollectionChanged;
return values;
}
private set
{
value0 = value[0];
value1 = value[1];
value2 = value[2];
}
}
private void values_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
Values = values;
}
}
这个问题出现在试图设置值时。如果我试图通过写来设置值
价格。值[0]=someValue;
新值并不总是反映在集合中(即,当我之前设置了值,然后尝试覆盖该值时)。
我愿意尝试任何能够实现我的目标的方法,我并不珍视解决方案的修复(尽管如果有人能解释我所缺少的东西,那就太好了!)