0

如果我有课

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 = "字符串" 不起作用。

4

2 回答 2

2

要更改TextBoxfrom Content1to的绑定Content2,首先给TextBox一个名称,然后在代码隐藏中你可以这样做:

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

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

string content = ((ContentList)this.DataContext).Content1;
于 2013-05-17T16:11:01.390 回答
1

Content2您可以通过写入Content2XAML 文件来更改绑定。您不能动态地执行此操作。嗯,这不太对。可以使用 Binding 类在代码中建立新的绑定。但是在这种情况下您不应该这样做,因为它会破坏 XAML 中的声明式编程。

Content1可以这样访问:((ContentList)DataContext).Content1

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

于 2013-05-17T16:04:46.273 回答