我正在使用带有SQL Server Compact Edition的WPF在.NET 4.0中构建桌面应用程序。 我正在使用Entity Framework 6.0 Code First方法作为我的ORM。我的POCO课很简单:
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get { return FirstName + " " + LastName; } }
}
我正在使用以下代码
在UI中显示FullName
属性
<TextBox Text="{Binding FirstName, UpdateSourceTrigger=PropertyChanged}"/>
<TextBox Text="{Binding LastName, UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock Text="{Binding FullName}" />
当我更新其中一个属性FirstName
或LastName
时,FullName
不会更新。
起初,我认为这是因为我的POCO类没有实现INotifyPropertyChanged(我懒得在我的所有属性setter中编写OnPropertyChanged方法:)。
但另一方面,当我尝试Multibinding ... 它以某种神奇的方式工作:
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="Employee.FirstName"/>
<Binding Path="Employee.LastName"/>
</MultiBinding>
有人可以向我解释一下,什么事件正在触发UI更新?如何将我的小EventHandler添加到此事件中?