单击“保存”按钮后的WPF数据绑定

时间:2013-07-24 07:36:00

标签: wpf data-binding

我有一个应用程序和一个带有TabControl的设置窗口,其中包含几个TabItems。它们中的每一个都有一些字段(文本框),它们被数据化为同一个Singleton对象 只有在保存按钮单击后才有任何优雅且类似WPF的数据绑定方式?
现在它在更改文本框的内容后立即进行了数据绑定,我希望该单例具有旧值并仅在单击保存按钮后更新它们。

3 个答案:

答案 0 :(得分:3)

对于DataBinding的XAML中使用的Textbox对象,请使用值为UpdateSourceTrigger Explicit 属性,如下所示:

<TextBox Name="itemNameTextBox"
     Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />

当您将UpdateSourceTrigger值设置为Explicit时,源值仅在应用程序调用{​​{1}}方法时更改,如下所示(您可以将下面的代码放在Save UpdateSource事件中):

Click

答案 1 :(得分:2)

不是在每个属性的集合上引发更改通知(因为这是触发重新绑定和更新的内容),而是将所有引发通知放在保存按钮中。然后,当您单击“保存”时,将保存并告诉“视图”重新绑定到那些(现在已设置)属性。

进一步说明: 绑定到非单一属性(因为您希望保留旧设置,直到单击保存) - 没有对这些属性发出通知。

在保存按钮中,设置单身人士属性,然后提出其他属性的所有通知。

在取消按钮中,将其他属性设置为单身人士属性的值,并提出所有通知。

第一次加载视图时,不要忘记将属性设置为单例属性,并引发所有通知(就像取消一样)。

答案 2 :(得分:0)

如果您使用的是WPF,请将UpdateSourceTrigger更改为LostFocus。我认为这将解决目的。

Text="{Binding Path=MyText, UpdateSourceTrigger=LostFocus, Mode=TwoWay}"