問題タブ [element-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
31 参照

wpf - TreeViewItem に ItemsSource がある TreeView SelectedItem への要素バインディング

私は次のユーザーコントロールを持っています:

これは、ハードコーディングされた Treeview 項目に対してはうまく機能しますが、いずれかのパンを選択すると、ElementBinding が接続されません。ツリービューを変更して HierarchicalDataTemplate を使用することもできますが、そのためには、各レベルでバインドするダミー コレクションを作成し、壁にプロパティを追加して、どの壁がどれであるかを判別できるようにする必要があると思います。ツリービューを機能させるためだけにダミー情報をすべて作成すると、コードの匂いがします。

これを機能させるための最良の方法について何か考えはありますか?

編集:

それが機能しない理由は、ハードコードされたツリービュー項目が選択されたときにデータバインディングが TreeViewItem 自体を指しているため、SelectedItem.DataContext にバインドしていたためです。Pan を選択すると、SelectedItem は TreeViewItem ではなく PanViewModel になります。

単純に SelectedItem にバインドしようとすると、ハードコードされた TreeViewItems は機能しません。これは、TreeViewItem 自体を ContentControl に挿入しようとするため、例外がスローされます。

PanViewModel には DataContext がないため、SelectedItem.DataContext へのバインドは機能しません。私はまだこれに対するエレガントな解決策を見ていません。