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