ボタンの 1 つにカスタム IComand クラスを実装しました。ボタンはページ 'MyPage.xaml' に配置されますが、そのカスタム ICommand クラスは、MyPage コード ビハインドではなく、別のクラスに配置されます。次に、XAML からボタンをそのカスタム コマンド クラスにバインドし、次のようにします。
マイページ.xaml:
<Page ...>
<Page.CommandBindings>
<CommandBinding Command="RemoveAllCommand"
CanExecute="CanExecute"
Executed="Execute" />
</Page.CommandBindings>
<Page.InputBindings>
<MouseBinding Command="RemoveAllCommand" MouseAction="LeftClick" />
</Page.InputBindings>
<...>
<Button x:Name="MyButton" Command="RemoveAllCommand" .../>
<...>
</Page>
およびカスタム コマンド ボタン クラス:
// Here I derive from MyPage class because I want to access some objects from
// Execute method
public class RemoveAllCommand : MyPage, ICommand
{
public void Execute(Object parameter)
{
<...>
}
public bool CanExecute(Object parameter)
{
<...>
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
}
私の問題は、ボタンの Execute および CanExecute メソッドが別のクラスにあり、ボタンが配置されているコードの背後にある MyPage.xaml をどのように言うかです。これらのメソッドが XAML ページの RemoveAllCommand クラスにあると言う方法。
また、ボタンでクリック マウス イベントが発生したときにこのコマンドを起動したいので、入力バインディングを行いますが、正しいですか?
ありがとう