绑定到一组值

时间:2018-02-15 15:22:58

标签: c# wpf xaml mvvm

我们说我有一个像下面这样的文本框。我想将它绑定到一组我将在viewmodel中以编程方式设置的值。

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Address" Style="{StaticResource tabTextBlock}"/>
    <TextBox Text="{Binding test.test2}" Style="{StaticResource tabTextBox}"/>
</StackPanel>

所以ViewModel看起来像......

public class test
{
    string test2 = "TEST";
}

如何在viewmodel中查看此语法?我知道对于单个值,代码看起来像

public string Test
{
    get { return _Test; }
    set { _Test = value; OnPropertyChanged(nameof(Test)); }
}
private string _Test = "";

我只是不确定如何扩展它以在测试中包含局部变量。

1 个答案:

答案 0 :(得分:1)

在绑定路径test.test2中,test指的是DataContext的{​​{1}}(视图模型)的属性,而TextBox指的是属性这个视图模型。

因此,如果您将test2(或其任何父元素)的DataContext设置为以下类:

StackPanel

...并定义public class ViewModel { public Test test { get; } => new Test(); } 类,如下所示:

Test

......绑定将起作用。

当然,您可以向public class Test : INotifyPropertyChanged { public string test2 { get { return _test2; } set { _test2 = value; OnPropertyChanged(nameof(test2)); } } ... } 类添加任意数量的属性,并以相同的方式绑定到这些属性。