wpf - 如何在wpf中的单向数据绑定(bind)中控制 "update trigger"?

标签 wpf xaml 2-way-object-databinding data-binding

在 WPF 中使用数据绑定(bind)时,如果将 Mode 属性设置为 TwoWay,则可以通过设置 UpdateSourceTrigger< 来控制更新源属性的时刻 属性。对于目标 -> 源更新流来说,这种情况是可能的。但是如何控制源 -> 目标更新流的相同内容呢?我找不到同等的属性(property)。

例如,假设我的窗口上有两个文本框,并且我想绑定(bind)这两个文本框的 Text 属性。 XAML 可能如下所示:

        <TextBox
            Name="txt1"
            Text="{Binding ElementName=txt2, Path=Text, Mode=TwoWay,
            UpdateSourceTrigger=LostFocus}"
            />
        <TextBox
            Name="txt2"
            />

当用户在txt1文本框中输入文本时,txt2文本框的Text属性将更新为Text属性更改,就像我在 txt1 上实现 TextChanged 事件一样。

但是,当用户在txt2文本框中输入文本时,txt1文本框的Text属性将在txt2之后更新> TextBox 失去焦点,因为 UpdateSourceTrigger 属性设置为 LostFocus,就像我实现了 LostFocus 事件一样。

在源属性控件失去焦点后,WPF 数据绑定(bind)是否有可能更新目标属性?在我们的示例中:应该对上面的 XAML 代码执行什么操作,以便仅在 txt1 TextBox 失去焦点后更新 txt2 TextBox 的 Text 属性,而不是在其 Text 属性更改后?

谢谢!

最佳答案

为什么不定义两个绑定(bind)?这对我有用:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <TextBox Name="txt1" Margin="4" 
                 Text="{Binding ElementName=txt2, Path=Text, Mode=OneWay}" />
        <TextBox Name="txt2" Margin="4" 
                 Text="{Binding ElementName=txt1, Path=Text, Mode=OneWay}" />
    </StackPanel>
</Window>

关于wpf - 如何在wpf中的单向数据绑定(bind)中控制 "update trigger"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020510/

相关文章:

c# - 适用于 Windows 8 的哪个图形框架?单人游戏? OpenGL 和 Xaml/DirectX 混合?

c# - 如何隐藏 WPF 网格溢出(如 CSS 溢出 :hidden)

javascript - JsViews 复选框从内部循环绑定(bind)

xaml - 在 Windows Phone 应用程序中添加模糊背景

wpf - 双向绑定(bind) : Combobox of Checkboxes - Kind of Working but not

javascript - Polymer 1.0 绑定(bind)到未初始化对象的子属性

wpf - 将 SelectedItem 绑定(bind)为 ItemsSource 的绑定(bind)未完成

c# - C#中的图像处理

wpf - 构建 Silverlight 4 和 WPF 应用程序

.net - 什么最适合桌面小部件(占地面积小且图形漂亮)?