我有一个窗口,显示可变数量的相同UserControl,其中包含(除其他外)TextBox。单个ViewModel同时服务于窗口和UserControls。当所需的索引传递给UserControl的构造函数时,如何将UserControl的TextBox的Text属性绑定到视图模型中的List-of-strings元素?
我还需要Mode =“TwoWay”和UpdateSourceTrigger =“PropertyChanged”。
使用VS2013,.NET 4.5.2和MVVM-Light框架。
谢谢。
答案 0 :(得分:2)
您需要在ViewModel中创建一个新属性,该属性将充当"包装器"那个电话。
public string MyElementItem {
get { return myStringList[myAwesomeIndexFromConstructor]; }
set {
myStringList[myAwesomeIndexFromConstructor] = value;
RaisePropertyChanged(...);
}
然后绑定到这个新属性,它应该为你做魔术!
<TextBox Text="{Binding MyElementItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
答案 1 :(得分:0)
决定创建一个新的ViewModel类来仅为UserControls服务,每个对象一个。创建UserControls的同一个类现在创建ViewModel并在UserControls ctor中传递一个。