gpt4 book ai didi

c# - CanExecute-Result 发生变化后控件不刷新

转载 作者:太空狗 更新时间:2023-10-29 22:35:27 30 4
gpt4 key购买 nike

在我的窗口中,我有加载和保存方法的按钮。我使用 CommandBinding 并且保存按钮有一个 CanExecute 属性来防止用户在加载数据之前保存数据。

CanExecute-Methode 连接到一个名为“canSaveXML”的简单 bool 值

private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (canSaveXML == false)
{
e.CanExecute = false;
}
else
{
e.CanExecute = true;
}
e.Handled = true;
}

我的意图是在加载数据后设置 canSaveXML = true,但控件在值更改后不会刷新。我做了一些阅读,发现我必须调用 CommandManager.InvalidateRequerySuggested。我现在这样做,我的代码如下所示。

canSaveXML = true;
CommandManager.InvalidateRequerySuggested();

但是控件(按钮)还是没有刷新。在我触发 UI 上的任何内容或最小化/最大化窗口之前,我仍然处于禁用状态。在我这样做之后,按钮被启用。

这里有什么问题吗?

在 MSDN 示例中,CommandManager.InvalidateRequerySuggested 一次又一次地使用调度程序计时器调用,但我拒绝相信这是唯一的解决方案。

最佳答案

好吧,我自己发现了。

canSaveXML = true;
CommandManager.InvalidateRequerySuggested();

是后台工作程序中的代码。不好。您必须告诉窗口的调度程序调用 CommandManager.InvalidateRequerySuggested();

关于c# - CanExecute-Result 发生变化后控件不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662525/

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