【发布时间】:2011-12-08 22:06:44
【问题描述】:
我对 MVVM 还很陌生,所以请耐心等待。我有一个视图模型类,它的公共属性是这样实现的:
public List<float> Length
{
get;
set;
}
在我的视图 XAML 中,我有几个文本框,每个文本框都绑定到此长度列表中的特定元素:
<TextBox Text="{Binding Length[0], Converter=DimensionConverter}" />
<TextBox Text="{Binding Length[2], Converter=DimensionConverter}" />
<TextBox Text="{Binding Length[4], Converter=DimensionConverter}" />
DimensionConverter 是一个 IValueConverter 派生类,它像尺寸一样格式化值(即 480.0 英寸在屏幕上的文本框中变为 40'0"),然后再返回(即,对于一个字符串,采用 35'0" 并产生 420.0英寸为来源)
我的问题:我需要能够验证列表中的每个值,因为它在关联的文本框中发生了更改。对于某些人,我可能需要根据输入的值修改列表中的其他值(即更改 Length[0] 处的浮点数将更改 Length[4] 处的值并更新屏幕)。
有没有办法重新处理属性以允许索引器?或者,我是否需要为列表中的每个项目创建单独的属性(这确实使列表变得不必要)?本质上,由于我已经有了 float 的集合,我希望能够编写 MVVM 代码来验证每个项目的修改。
想法? (并且,提前感谢)
【问题讨论】:
标签: wpf xaml binding mvvm collections