私はWPFが初めてなので、私がやっていることに意味があるかどうかはわかりません..とにかく:ApplicationCommands.Openを使用するボタンのコマンドを実装しようとしています。私のXAMLには次のものがあります。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ViewModel"
Title="MainWindow" Height="650" Width="1170">
<Window.DataContext>
<local:ResourceListViewModel/>
</Window.DataContext>
local:ResourceListViewModel クラスにコマンドを定義したいので、これまでのところ、次のようにしました。
void OpenCmdExecuted(object target, ExecutedRoutedEventArgs e)
{
MessageBox.Show("The command has been invoked");
}
void OpenCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
したがって、私がしなければならないと思うのは、これらのメソッドをコマンドにバインドすることです。そのため、次のようにしようとしています。
<Window.CommandBindings >
<CommandBinding Command="ApplicationCommands.Open"
Executed="OpenCmdExecuted"
CanExecute="OpenCmdCanExecute"/>
</Window.CommandBindings>
しかし、MainWindow でこれらの関数を探しているように見えるため、プログラムはコンパイルされていません。関数の定義が別のクラスにあることをプログラムに知らせるにはどうすればよいですか?