【发布时间】:2014-03-10 15:43:40
【问题描述】:
我有两个 WPF 窗口。主要的包含一个绑定到ObservableCollection<Person> 的网格。我可以从列表中添加和删除对象(人)。当我修改一个人时,我还有另一个窗口可以显示。
Person 具有三个属性:Name、LastName 和 Age,并正确实现了 INotifyPropertyChanged。在新窗口中,我有 3 个文本框绑定到名为“person”的静态资源 Person。
当我初始化新窗口时,我将 Person 对象提供给构造函数,然后我希望这个 person 属性显示在三个文本框中。
当下面的代码看起来像这样时,一切正常:
public ModifyPerson(Person modPerson)
{
// ... some code
Person p = this.Resources["person"] as Person;
p.Name = modPerson.Name;
p.LastName = modPerson.LastName;
p.Age = modPerson.Age;
}
不过我更喜欢这样:
public ModifyPerson(Person modPerson)
{
// ... some code
this.Resources["person"] = modPerson;
}
但是它不起作用。 (资源已正确分配,但文本框不显示 modPerson 属性的值。
如何解决?
【问题讨论】:
-
你能说明你的文本框是如何定义的吗?
-
你确定你 NotifyPropertyChanged 了吗?
-
你为什么要使用
StaticResource?
标签: c# wpf initialization resourcedictionary