2

メイン ウィンドウ内でユーザー コントロールをホストしようとしていますが、それをビュー モデルに実装する方法を決めるのに苦労しています。

まず、ユーザー コントロール用に別のビュー モデルを作成し、データ テンプレートを使用してそれをコントロールにマップしてから、次のようにホストしますContentControl

データ テンプレート:

<DataTemplate DataType="{x:Type viewModels:TaskbarIconViewModel}">
    <tb:TaskbarIcon/>
</DataTemplate>

XAML:

<ContentControl Content="{Binding TaskbarIconViewModel}"/>

このセットアップを使用する場合、ユーザー コントロールでメソッドを呼び出す方法と、XAML またはビュー モデルでユーザー コントロールのプロパティを設定する方法を教えてください。

次に、ユーザー コントロールをビュー モデルに保持し、それをContentControlもう一度バインドするというアイデアがありました。これは私には間違っているようで、MVVMに反対しています。これは正しいですか?ビューモデル内にコントロールを保持することは許容されますか?

ビューモデルでは:

public TaskbarIcon TaskbarIcon { get; set; }

XAML:

<ContentControl Content="{Binding TaskbarIcon}"/>

ここでの最善の行動は何ですか?

4

1 に答える 1

5

UserControlをViewModelに保存する:大したことはありませんか?はい
ViewModelはビューを認識してはなりません。

あなたが話しているのは、 PRISMの地域が行っていることです。車輪の再発明はしないでください;)

于 2013-01-06T02:10:54.870 に答える