ファイルメニューの標準の「最新ファイル」オプションを実装しようとしています。以下のコードはオプションのリストを正しく示していますが、fileNameを含むサブメニューをクリックすると、コマンドへのバインディングは機能しません。メニューアイテム最新のファイルxamlの実装Mvvm
0
A
答えて
0
最近のファイルを表すために使用しているオブジェクトは、どのタイプがわかりません。私は文字列を使用していると仮定していますが、他の型も使用している可能性があります。
バインディングフレームワークが、ビューモデルではなく最近のファイルを表すために使用しているタイプのOpenFileCommandという名前のプロパティを探しているため、このエラーが発生します。
だから、解決策は、直接ビューのDataContextのを参照するビューモデル内のコマンドにバインドするために、結合要素を使用することです:
インスタンスのMenuコントロールに名前を入れてください:
<MenuItem x:Name="Menu" Header="File">
</Menu>
は今、あなたはメニューのDataContextのに結合する要素の操作を行うことができますのItemsControlでCommandプロパティのスタイルセッターで
<MenuItem Header="Recent Files"
ItemsSource="{Binding Path=RaptManager.RaptConfiguration.RecentFiles}"
Command="{Binding OpenFileCommand}">
<ItemsControl.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding}" />
<Setter Property="Command" Value="{Binding ElementName=Menu, Path=DataContext.OpenFileCommand}" />
</Style>
</ItemsControl.ItemContainerStyle>
</MenuItem>
注意私たちがMenu要素のDataContextプロパティのProperty OpenFileCommandを参照している 's' ItemContainerStyle。これは要素バインディングです。詳細を知りたい場合は、thisリンクをチェックしてください。
このようにして、ビュー・コマンドは、ビュー・モデルのCommandプロパティーに正しくバインドされている必要があります。
希望すると便利です。
関連する問題
- 1. PropertyGrid(DevExpress)のハイブリッドMVVM実装
- 2. MVVM実装の疑問
- 3. WinFormアプリケーションのMVVM実装
- 4. XAML MVVMマルチバインド
- 5. CollectionViewSource WPF DataGrid用MVVM実装
- 6. XamlリストビューItemTappedバインディングMVVM
- 7. 言語変更のプライベートList変数の更新MVVMとXAML
- 8. WPF MVVM CanExecuteメソッド実装の問題
- 9. XAMLの最新デザインの問題
- 10. MVVMツールキット(テンプレート)とwpf mvvmのXAML powertoysは動作しますか?
- 11. MVVMでダイアログアーキテクチャを実装する方法
- 12. XAML、MVVM、起こるのを待つ
- 13. WPFボタンキーダウンでXAML/MVVMのクリックコマンドを変更
- 14. Wpf MVVM UIはモジュール化、イベント・ジェネレータの実装を更新しません
- 15. Xamarin.Forms OnAperaingイベントを使用してXAML ListViewを設定するためのMVVM実装
- 16. 独自のMVVMを実装するか、MVVMフレームワークを使用するか?
- 17. MVVMでのWPFの簡単なマスター/ディテールシナリオの実装
- 18. メニューアイテムのイベント
- 19. 最大ヒープの実装
- 20. Mavenリポジトリから最新のJSF Mojarra実装を引き出す
- 21. 最新のTinyMCE実装用レールはありますか?
- 22. WPFを実装する方法リボンコンテキストタブMVVMの方法
- 23. 既存のプロジェクトにMVVMを実装する
- 24. 最小CommonJS実装
- 25. WPFのXAMLデザイナは、私のXAMLファイルの
- 26. ASP.netのXamlファイル
- 27. Androidのアクションバータブとメニューアイテム
- 28. テール最新のファイル
- 29. 実装ファイル内のエラー
- 30. Javaファイルのテイラー実装
ItemSourceは、ObservableCollectionの文字列にバインドされています。私はお勧めしたソリューションを試しましたが、関数呼び出しはまだトリガされません。 – Methalous
@Methalous、まあ、私はそれを新しいWPFアプリケーションで自分自身でテストし、うまくいきました。たぶんもう別の問題があります。私はあなたとプロジェクトを共有しているので、多分問題を見つけるのに役立ちます。 clone [this](https://github.com/ktamayop/WpfMenuSample)repoに進み、コマンドを処理するメソッドにブレークポイントを設定すると、ヒットしたことがわかります。 –