CommandBinding.CanExecute 事件
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
與此 CommandBinding 相關聯的命令開始檢查是否可在命令目標執行該命令時發生。
public:
event System::Windows::Input::CanExecuteRoutedEventHandler ^ CanExecute;
C#
public event System.Windows.Input.CanExecuteRoutedEventHandler CanExecute;
member this.CanExecute : System.Windows.Input.CanExecuteRoutedEventHandler
Public Custom Event CanExecute As CanExecuteRoutedEventHandler
Public Event CanExecute As CanExecuteRoutedEventHandler
下列範例會CommandBinding建立 ,將 和 CanExecuteRoutedEventArgs 處理程式對應ExecutedRoutedEventHandler至 Open 命令。
XAML
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Open"
Executed="OpenCmdExecuted"
CanExecute="OpenCmdCanExecute"/>
</Window.CommandBindings>
C#
// Creating CommandBinding and attaching an Executed and CanExecute handler
CommandBinding OpenCmdBinding = new CommandBinding(
ApplicationCommands.Open,
OpenCmdExecuted,
OpenCmdCanExecute);
this.CommandBindings.Add(OpenCmdBinding);
' Creating CommandBinding and attaching an Executed and CanExecute handler
Dim OpenCmdBinding As New CommandBinding(ApplicationCommands.Open, AddressOf OpenCmdExecuted, AddressOf OpenCmdCanExecute)
Me.CommandBindings.Add(OpenCmdBinding)
以下顯示設定為 true
的 CanExecuteRoutedEventHandlerCanExecute 。
C#
void OpenCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
Private Sub OpenCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
e.CanExecute = True
End Sub
CanExecute呼叫 上的 RoutedCommand 方法時,PreviewCanExecute會在命令目標上引發 事件。 如果未處理事件,則會 CanExecute 引發 事件。 如果命令目標具有 CommandBinding 命令的 ,則會 CanExecute 呼叫的 CommandBinding 處理程式。 如果命令目標沒有 CommandBinding 命令的 ,則 CanExecute 事件會將專案樹狀結構反升,搜尋與 CommandBinding 命令相關聯的專案。
標識元欄位 | CanExecuteEvent |
路由策略 | 鼓 泡 |
代理人 | CanExecuteRoutedEventHandler |
- 對應的通道事件為 PreviewCanExecute。
產品 | 版本 |
---|---|
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |