1

MVVM サポートがバインドされている VM の依存関係プロパティに依存しているサード パーティの WPF コントロールを使用しています。コントロールに付属のサンプルは、DependencyObject から派生した ViewModelBase クラスを使用しているため、問題ありません。

私の ViewModelBase は INotifyPropertyChanged を実装しており、さまざまな理由から、これを DependencyObject に変更するのは現実的ではありません。

私の質問は、この WPF コントロールで ViewModels を使用するにはどうすればよいですか? 私が必要としているのは、単純な古い ViewModel に「依存関係オブジェクトを埋め込む」または「依存関係プロパティをプラグインする」ようなものだと思います。

ところで、私の MVVM アプリケーションはインターフェイス ベースです。つまり、SomeViewModel はどこでも ISomeViewModel です。

4

1 に答える 1

1

一般に、DP は問題なく任意のプロパティにバインドできるため、適切に設計されたコントロールは にバインドする必要はありません。DependencyPropertyそのため、これが本当にコントロールの実装のバグであるかどうかを最初に再検討し、それを修正します。

ただし、これを行う必要がある場合は、MVVM に違反することに注意してください。ViewModelDependencyObject内で使用することは、その性質上、ビュー固有のフレームワーク要素を VM に挿入することです。これを行っても問題ないと判断したら、いつでも ViewModel で DependencyObject をプロパティとして公開し、VM のプロパティに直接ではなく、その DependencyObject で定義された DependencyProperty にバインドできます。

于 2013-02-27T02:26:39.890 に答える