【发布时间】:2013-01-14 19:25:53
【问题描述】:
假设我有一个 Person 类,它具有以下属性和方法:
public string FirstNamepublic string LastNamepublic House CurrentHousepublic void BuildHouse(string streetAddress)
House 是一个单独的类,具有一些简单的属性,例如街道地址。
当我第一次创建Person 对象时,我将一个 WPF 窗口数据绑定到它。 Person 以 FirstName 和 LastName 开头,但它们的 CurrentHouse 为空。 (这是一个愚蠢的例子,但为了争论,假设这个人必须先盖房子才能住进去。)FirstName 和 LastName 的数据绑定按预期工作。
现在假设我想把这个人搬到一所房子里。逻辑看起来像:
public void BuildHouse(string streetAddress)
{
this.CurrentHouse = new House()
{
StreetAddress = streetAddress;
};
}
我的 WPF 窗口数据上下文是这个人对象。我有一个显示此人地址的标签(绑定到MyPerson.CurrentHouse.StreetAddress 和UpdateSourceTrigger 的PropertyChanged)。当我第一次显示屏幕时,CurrentHouse 对象为空且标签为空白(预期行为)。但是,当我调用BuildHouse("123 anywhere st") 时,我希望数据绑定标签的值更改为“123 任何地方”。
这不是正在发生的事情,我开始怀疑这是因为当窗口最初打开时,数据绑定 Person 对象的 CurrentHouse 属性为空。我的怀疑正确吗?如果是这样,一旦 CurrentHouse 对象不再为空,我需要做什么才能在标签上启用数据绑定?
【问题讨论】:
标签: c# wpf data-binding