好吧,我在模型中有这样一个类型对象的ObservableCollection:
private ObservableCollection<object> _selectedItems = new ObservableCollection<object>();
public SelectedItems
{
get{return _selectedItems}
set
{
_selectedItems = value;
NotifyPropertyChanged("SelectedItems");
}
}
我正在使用附加属性来更新视图中的选定项目,因此要使用对象类型进行通用行为。
嗯,我的问题是在我的视图模型中我需要访问我的类型的属性。所以我这样做:
((MyCustomType)SelectedItems[0]).MyProperty.
但这是一项非常繁琐的工作,并认为此演员阵容有成本。所以我这样做很多次,我想知道是否有更好的解决方案。
也许使用动态类型而不是对象类型?优点是我不需要进行演员表,但我失去了智能感知功能,因此调试错误更加困难。
也许是另一种解决方案?
答案 0 :(得分:2)
没有装箱/拆箱的铸造(假设MyCustomObject
是一个类而不是结构)没有特别大的开销,但如果你知道类型总是MyCustomObject
,那么正确的解决方案是将集合声明为
private ObservableCollection<MyCustomObject> _selectedItems
= new ObservableCollection<MyCustomObject>();