如何在 WPF 中将两个元素绑定到相同的 属性 - C#

How to bind two elements to the same property in WPF - C#

我在带有 MVVM(带有 Caliburn Micro 框架)的 WPF 应用程序中使用 C#。我正在尝试将 2 个元素(一个 TextBlock 和一个 TextBox)绑定到位于我的模型视图中的同一个 属性。我的 属性 叫 FirstName。 我有两个选项来进行绑定:Binding Path=FirstNamex:Name=FirstName。当我编辑文本框时,只有当我以某种方式绑定时,我才会看到文本块中的更改(参见代码)。知道为什么另一种方法不起作用吗? (当我在文本框中输入时,我没有看到我的文本块更新)

我尝试了不同的模式选项(两种方式,一种方式等)。 NotifyOfPropertyChange 似乎有效。

<!-- This works -->
<TextBlock Text="{Binding Path=FirstName}"/>
<TextBox x:Name="FirstName"/>

<!-- This does not work -->
<TextBlock x:Name="FirstName"/>
<TextBox Text="{Binding Path=FirstName, Mode=TwoWay}"/>

对于第二个示例,您需要指定 UpdateSourceTrigger=PropertyChanged:

<TextBlock x:Name="FirstName"/>
<TextBox Text="{Binding Path=FirstName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

否则,源仅在 TextBox 失去焦点时更新。