XAML更改绑定和DataContext元素

时间:2013-05-17 15:58:56

标签: c# winrt-xaml

如果我有课

class ContentList 
{
    public string Content1 { get; set; }
    public string Content2 { get; set; }
}

和我的XAML文件中带有绑定的文本框

<TextBox Text="{Binding Content1, Mode=TwoWay}" ... />

我通过

在我的.cs文件中设置了DataContext
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    this.DataContext = new ContentList();
}

如何更改Content2的绑定?

另外,如何在代码中访问和更改Content1? this.DataContext.Content1 =“string”不起作用。

2 个答案:

答案 0 :(得分:2)

要更改TextBoxContent1Content2的绑定,请先给TextBox一个名称,然后在代码隐藏中执行此操作:

myTextBox.SetBinding(TextBox.TextProperty, new Binding("Content2"));

要在代码中访问Content1,您可以执行以下操作:

string content = ((ContentList)this.DataContext).Content1;

答案 1 :(得分:1)

通过在XAML文件中编写Content2,将绑定更改为Content2。你不能动态地这样做。嗯,那不太对劲。可以使用Binding类在代码中建立新的绑定。但是在这种情况下你不应该这样做,因为它会破坏XAML中的声明性编程。

可以像这样访问

Content1((ContentList)DataContext).Content1

但是,这不是最佳做法。尝试了解MVVM。