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

时间:2019-03-24 22:44:24

标签: c# wpf xaml caliburn.micro

我在带有MVVM(带有Caliburn Micro框架)的WPF应用程序中使用C#。我试图将2个元素(一个TextBlock和一个TextBox)绑定到位于模型视图中的相同属性。我的财产称为名字。 我有两个选项可以进行绑定: Binding Path = FirstName x:Name = FirstName 。编辑文本框时,只有以某种方式绑定(请参见代码),才能看到文本块中的更改。知道为什么其他方式不起作用? (当我在文本框中键入内容时,我看不到文本块更新)

我尝试了不同的 mode 选项(两种方法,一种方法等)。 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}"/>

1 个答案:

答案 0 :(得分:1)

在第二个示例中,您需要指定UpdateSourceTrigger=PropertyChanged

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

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