1

VLC の詳細設定メニューに似た設定メニューを作成したいと考えています。左側にツリービュー、右側にある種のコントロール コレクションがあります。右側のコントロールにより、ユーザーはツリー ビューでの現在の選択に関連する設定を操作できるようになります。ツリー ビューの右側にグリッドを作成することを考えました。次に、選択に基づいて、グリッドに表示する必要がある各ビューのユーザー コントロールを用意します。

ツリービューのアイテムにはUserControl、関連するビューへの参照を保持するプロパティがあります。ビューモデルには、ツリー ビューで現在選択されている項目を示す SelectedItem プロパティがあります。

UserControlここで、グリッドのコンテンツを my のプロパティにバインドしたいと考えていSelectedItemます。しかし、私はそれを行う方法を理解できません。Childrenグリッドのプロパティをクリアし、プロパティが変更されるたびにコードに表示するユーザー コントロールを追加する代わりに、XAML ベースのソリューションを使用することをお勧めしSelectedItemます。

4

2 に答える 2

2

ContentControlの代わりに使用することをお勧めしGridます。

VMSelectedItemツリー ビューとコンテンツ コントロールが同じビュー モデルの下にあることを考慮して、ビュー モデルで、ツリー ビュー内のアイテムと同じタイプの選択されたアイテム ( と呼びましょう) のプロパティを追加します。

ツリー ビューの XAML に追加します。

SelectedItem="{Binding VMSelectedItem}"

コンテンツ コントロールの XAML 内

Content="{Binding VMSelectedItem.UserControl}"

ツリーで選択すると、VMSelectedItemプロパティが更新され、コンテンツ コントロールのコンテンツが更新されます。

于 2013-05-05T13:28:19.420 に答える