WPF / CaliburnMicro将一个属性绑定到两个窗体控件

时间:2019-03-09 02:17:16

标签: wpf vb.net data-binding caliburn.micro

我有一个PersonModel对象,该对象具有两个属性FirstNameLastName。我在ViewModel中创建了类型为CurrentPerson的{​​{1}}属性。绑定到控件时,绑定到PersonModel的任何一个都是在运行时显示的唯一控件

TextBlock显示名字

x:Name

文本框显示名字

<TextBlock x:Name="CurrentPerson_FirstName" Grid.Column="0"  Grid.Row="0"></TextBlock>
<TextBox Text="{Binding Path=CurrentPerson_FirstName}" Grid.Column="0" Grid.Row="1"/>

如何使TextBlock和TextBox都显示相同的数据,并且如果键入了TextBox,则将更新TextBlock和CurrentPerson?

1 个答案:

答案 0 :(得分:2)

当不使用x:Name时,应坚持使用“。”的常规命名方式。在您的TextBlock中,您需要将“ CurrentPerson_FirstName”替换为“ CurrentPerson.FirstName”。

例如,

<TextBlock Text="{Binding Path=CurrentPerson.FirstName}" Grid.Column="0"  Grid.Row="0" ></TextBlock>

这应该有助于您将两个控件都绑定到同一属性。