私はWPFとXAMLを初めて探求していますが、私はまだ理解していない部分がたくさんあります。私は自分のプロジェクトを作成しましたhttp://www.codeproject.com/KB/WPF/AvalonDockMVVM.aspxCommandBindingを解決できません
、およびAvalonDockMVVMから、それにコードを追加しようとしています:
私はこれを通じて働いています。
現在、メニューを作成しようとしています。 MainWindow.xamlで
、私が追加しました:
<Window.Resources>
<RoutedUICommand x:Key="Commands.Exit" />
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource Commands.Exit}" Executed="Exit_Executed" />
</Window.CommandBindings>
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="_Exit" Command="{StaticResource Commands.Exit}" />
</MenuItem>
</Menu>
...
</DockPanel>
アイデアは、単一の「終了」オプションを使用してメニューを構築することです。
今私が言ったように、私は何をしているのかほとんど分かりません。しかし、<RoutedUICommand>がコマンドを作成しているように見えます。<CommandBinding>は、コードビハインドのExitExecuted()メソッドにバインドしています。<MenuItem>は、そのメニュー項目を選択すると、そのコマンドに束縛されるものは何でも。
AvalonDockMVVMプロジェクトですべて正常に動作します。私の場合、{StaticResource Commands.Exit}でエラーを賭けています:リソースCommands.Exitを解決できませんでした。
これは、XAMLの<RoutedUICommand>要素のほかに、Commands.Exitを定義するコードまたは構成のどこかにあると思います。しかし、私の人生のために、私はそれを見つけることができません。
メソッドをメニューにバインドするには、コマンドでバインドする必要がありますか?
もっとコードを追加しました。正確には、MainWindowViewModelを追加しました。そして今、これは解決します。これは今までどおり私を困惑させてしまいます。ビューモデルには、終了とは何の関係もないものはありません。 –