WPF使用变量索引将TextBox绑定到List <string>

时间:2015-10-05 14:20:23

标签: c# wpf mvvm data-binding mvvm-light

我有一个窗口,显示可变数量的相同UserControl,其中包含(除其他外)TextBox。单个ViewModel同时服务于窗口和UserControls。当所需的索引传递给UserControl的构造函数时,如何将UserControl的TextBox的Text属性绑定到视图模型中的List-of-strings元素?

我还需要Mode =“TwoWay”和UpdateSourceTrigger =“PropertyChanged”。

使用VS2013,.NET 4.5.2和MVVM-Light框架。

谢谢。

2 个答案:

答案 0 :(得分:2)

您需要在ViewModel中创建一个新属性,该属性将充当&#34;包装器&#34;那个电话。

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中传递一个。