暂停WPF中绑定的控制更新

时间:2014-08-21 08:51:09

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

我正在尝试找到一种方法来暂停对TextBox控件的更新,使其在具有焦点时不受绑定,并且当用户按下Enter键时仍能够使用UpdateSource()更新源代码。一些solutions建议暂停源PropertyChangedEvent,但在我的情况下,值绑定到多个控件,我不想暂停它们更新。 其他一些人也建议从控件中删除绑定,但是会重置TextBox的值(我希望Text属性保持不变),当我再次设置绑定时,它也会首先发送{{1因为设置绑定也会清除属性值。

FallbackValue我通过以下代码完成了这个场景:

WinForms

如何在WPF中重新创建此功能?

修改

也许我不清楚。我的目标是使用TwoWay绑定,对源进行显式更新,并在控件具有焦点时从源“暂停”更新。

1 个答案:

答案 0 :(得分:0)

试试这个,但我不确定它是否能满足需求。如果出现焦点,它将从您放入文本框中的文本更新您的属性。

<TextBox>
        <TextBox.Style>
            <Style TargetType="TextBox">
                <Setter Property="Text" Value="{Binding Zmienna, Mode=OneWay}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsFocused}" Value="True">
                        <Setter Property="Text" Value="{Binding Zmienna, Mode=OneWayToSource}"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBox.Style>
    </TextBox>