WPF/CaliburnMicro 将一个 属性 绑定到两个表单控件

WPF/CaliburnMicro Bind one property to two form controls

我有一个 PersonModel 对象,它有两个属性,FirstNameLastName。我在我的 ViewModel 中创建了一个类型为 PersonModelCurrentPerson 属性。绑定到控件时,绑定到 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 Text="{Binding Path=CurrentPerson_FirstName}" Grid.Column="0"  Grid.Row="0" ></TextBlock>
 <TextBox Name="CurrentPerson_FirstName" Grid.Column="0" Grid.Row="1" />

如何让 TextBlock 和 TextBox 显示相同的数据,并且如果在 TextBox 中输入,TextBlock 和 CurrentPerson 将被更新?

不使用 x:Name 时,您应该坚持使用“.”的传统命名模式。在您的 TextBlock 中,您需要将 "CurrentPerson_FirstName" 替换为 "CurrentPerson.FirstName"。

例如,

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

这应该可以帮助您将两个控件绑定到同一个 属性。