点击保存按钮后的WPF数据绑定

3

我有一个应用程序和一个设置窗口,其中包含几个选项卡。每个选项卡都有一些字段(文本框),它们与相同的单例对象进行数据绑定。
是否有一种优雅且类似于WPF的方式,可以在“保存”按钮点击后才进行数据绑定?
目前,它会在更改文本框内容后立即进行数据绑定,我希望单例具有旧值,并仅在单击保存按钮后更新它们。

3个回答

3

对于在 XAML 中用于 TextboxDataBinding 对象,请使用以下代码中值为 ExplicitUpdateSourceTrigger 属性:

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

当你将UpdateSourceTrigger值设置为Explicit时,源值仅在应用程序调用以下UpdateSource方法时更改(您可以将以下代码放入Save Click事件中):

BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();

2

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

进一步说: 绑定非单例属性(因为您希望保留旧设置直到单击保存) - 在这些属性上没有提高通知。

在保存按钮中,设置单例属性,然后提高所有其他属性的通知。

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

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


0
如果你正在使用WPF,将UpdateSourceTrigger更改为LostFocus。我认为这样做可以解决问题。
Text="{Binding Path=MyText, UpdateSourceTrigger=LostFocus, Mode=TwoWay}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接