次の方法で共有


CommandManager.InvalidateRequerySuggested メソッド

定義

CommandManager に、RequerySuggested イベントを強制的に発生させます。

public:
 static void InvalidateRequerySuggested();
public static void InvalidateRequerySuggested ();
static member InvalidateRequerySuggested : unit -> unit
Public Shared Sub InvalidateRequerySuggested ()

次の例では、 を DispatcherTimer 使用して を定期的に呼び出 InvalidateRequerySuggested して、 CommandManager を強制的にイベントを RequerySuggested 発生させます。

//  System.Windows.Threading.DispatcherTimer.Tick handler
//
//  Updates the current seconds display and calls
//  InvalidateRequerySuggested on the CommandManager to force 
//  the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    // Updating the Label which displays the current second
    lblSeconds.Content = DateTime.Now.Second;

    // Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested();
}
'  System.Windows.Threading.DispatcherTimer.Tick handler
'
'  Updates the current seconds display and calls
'  InvalidateRequerySuggested on the CommandManager to force 
'  the Command to raise the CanExecuteChanged event.
Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    ' Updating the Label which displays the current second
    lblSeconds.Content = Date.Now.Second

    ' Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested()
End Sub

注釈

CommandManager 、キーボード フォーカスの変更など、コマンド ターゲットがいつ変更されたかを判断する際の特定の条件にのみ注意を払います。 コマンドを実行できない状態の変更を CommandManager が十分に判断できない場合は、 InvalidateRequerySuggested を呼び出して、 を強制的 CommandManager にイベントを RequerySuggested 発生させることができます。

適用対象