gpt4 book ai didi

c# - WPF 如何使用 CommandManager (CommandManager.InvalidateRequerySuggested) 确定何时 Invalidate?

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:21 24 4
gpt4 key购买 nike

我一直在使用 RelayCommand在这里和那里有点,这让我想知道并想知道...... CommandManager.InvalidateRequerySuggested() 到底是什么时候?被 WPF 调用?

我的猜测是每次触发 UI 上的任何其他路由事件时,这在 MVVM 世界中主要意味着当引发 OnPropertyChanged 事件时,导致值更改,导致执行一些相关的 routedevent。但是,这只是一个猜测,我想知道是否有人知道这里的确切内部工作原理。

最佳答案

我知道有几个原因:

  • 当键盘焦点改变时。

  • 命令执行后。

  • 控件可以在其他一些情况下认为必要时调用它(例如,当您在 TextBox 中按下某个键时)。

单独的属性更改通常不是无效的原因(我猜是出于性能原因)。

遗憾的是,我未能在 MSDN 中找到任何关于此的文档。我在此处发布的内容基于我在 Pro WPF in C# 2010 中找到的内容(很棒的书顺便说一句)。

另外,不是 CommandManager 失效了。 CommandManager 仅发送一个事件(使用命令订阅的控件),因此它们可以更新其启用/禁用状态。

关于c# - WPF 如何使用 CommandManager (CommandManager.InvalidateRequerySuggested) 确定何时 Invalidate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663646/

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