gpt4 book ai didi

c# - WPF mvvm 绑定(bind),获取/设置值 : issue with preventing update value

转载 作者:行者123 更新时间:2023-12-03 10:36:29 25 4
gpt4 key购买 nike

我在 WPF mvvm 环境中工作。

我有一些从cs文件到xaml的绑定(bind)变量和数据。

一个与其他不同:它是我的 tabsCollection 中所选选项卡的索引。当用户打开了多个标签并保存了模组时,我会向他显示一个对话框。如果他单击“确定”,则继续更改选项卡,如果单击“取消”,则选项卡必须保持不变。

这是我的代码:

private int p_SelectedDocumentIndex;
public int SelectedDocumentIndex{ get { return p_SelectedDocumentIndex; }
set {
if (tabsCollection.Count() > 1 && CanSave() == true)
{
if (dm.ShowMessage1(ServiceContainer.GetService<DevExpress.Mvvm.IDialogService>("confirmYesNo")))
{
p_SelectedDocumentIndex = value;
base.RaisePropertiesChanged("SelectedDocumentIndex");
}
//else {
// CODE FOR NOT CHANGE THE VALUE
//}
}
else {
p_SelectedDocumentIndex = value;
base.RaisePropertiesChanged("SelectedDocumentIndex");
}
}
}

所以,问题是:我怎样才能不在“设置”部分应用更改? (我认为就像撤消一样)

这是最简单的方法,但是,如果这种方法不正确,我该怎么办?

以前失败的尝试:
1)
p_SelectedDocumentIndex = p_SelectedDocumentIndex
base.RaisePropertiesChanged("SelectedDocumentIndex");

2)
base.RaisePropertiesChanged("SelectedDocumentIndex");

3)
nothing in the else branch

最佳答案

Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => SelectedDocumentIndex= p_SelectedDocumentIndex ), DispatcherPriority.Send);

此调用安排将 UI 状态恢复到操作开始之前的状态

关于c# - WPF mvvm 绑定(bind),获取/设置值 : issue with preventing update value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26156410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com