1

ViewModel クラス:

class MyViewModel : ViewModelBase, INotifyPropertyChanged
{
    public string SomeText { get{...} set {...}}
    public AnyNonMVVMControl MyControl { get {...} set {...}}
    ...
}

ウィンドウ XAML:

<Grid>
...
<TextBlock Text="{Binding SomeText}" />
<??? Content="{Binding MyControl}" /> <!-- how to bind MyControl to the View? -->
...
</Grid>

モデルを割り当てる

...
window.DataContext = new MyViewModel(...);
...

MVVM 用に設計されていないコントロールがあります。レンダリングとデータは強く結びついています (不適切な設計ソリューション)。ビューモデルにこのコントロールがあり、ウィンドウにバインドしたいと考えています。しかし、コントロールを XAML に直接追加したくありません。このコントロールにはビジネス ロジックとデータも含まれているためです。アクションを実行するにはビューモデルでアクセスする必要があります。

では、バインディングを介してウィンドウにコントロールを「追加」する方法は?

4

1 に答える 1

5

ContentPresenterまたはを使用ContentControl:

<ContentControl Content="{Binding MyControl}" />
于 2012-08-19T15:37:49.817 に答える