如何将WPF控件的属性绑定到我在代码中创建的对象?
例如,假设我有一段XAML:
<TextBlock Text="(title name here)"/>
我在C#中有这个课程:
public class Article
{
public string Title { get; set; }
public DateTime Published { get; set; }
public string Body { get; set; }
}
我有对象:
Article a = new Article();
a.Title = "Foo";
基本上,我如何让TextBlock始终显示aTitle设置为什么?
如果它有帮助(也许有更好的方法),在我的例子中,我有一个窗口,其中包含文章列表和文章详细信息部分。当我选择一篇文章时,我想填写详细信息部分。
答案 0 :(得分:4)
使用以下内容:
<TextBlock Text="{Binding Title}" />
这假定TextBlock元素的DataContext设置为Article类型的实例。通常,您应该使用MVVM,在这种情况下,您的视图的DataContext将是您的相应视图模型,在这种情况下,您可能在视图模型上具有Article类型的属性。您的绑定表达式将是{Binding MyArticleProperty.Title}。
要使UI在代码中更改此属性值时进行更新,您需要通过使用依赖项属性或在视图模型上实现INotifyPropertyChanged来使绑定无效。
答案 1 :(得分:3)
您需要使用Binding
例如:
<TextBlock Text="{Binding ArticleProp.Title}"/>
假设您在XAML对象的DataContext上有ArticleProp
类型Article
的属性。
如果您希望TextBlock
自动更新,您还需要Article
实施INotifyPropertyChanged
。