如果我有课
class ContentList
{
public string Content1 { get; set; }
public string Content2 { get; set; }
}
和我的XAML文件中带有绑定的文本框
<TextBox Text="{Binding Content1, Mode=TwoWay}" ... />
我通过
在我的.cs文件中设置了DataContextprotected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
this.DataContext = new ContentList();
}
如何更改Content2的绑定?
另外,如何在代码中访问和更改Content1? this.DataContext.Content1 =“string”不起作用。
答案 0 :(得分:2)
要更改TextBox
从Content1
到Content2
的绑定,请先给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。