view/viewmodelを別のビュー/ viewmodelにカプセル化したい。目的は、ポップアップ、スライドパネル、または一般的な動作を考えることができ、それにカスタムビュー/ビューモデルを挿入することです。View/Viewmodelを継承またはカプセル化する
私はそれを行うための汎用を使用したいが、私は一種の
をこだわって、親ビューモデルは、親ビューは、その
... whatever design and behavior ...
<ContentPresenter Content="{Binding EnclosedViewModel}"/>
... whatever design and behavior ...
ようになること
public class SidePanelViewModel<T>
{
public SidePanelViewModel(T enclosedViewModel)
{
EnclosedViewModel = enclosedViewModel;
}
public T EnclosedViewModel { get; private set; }
}
のようになります。
私のマッピングファイルでは、それを置いておきたいが、ここに問題がある:
<DataTemplate DataType="{x:Type WPFTests:SidePanelViewModel}">
<WPFTests:SidePanelView />
</DataTemplate>
<DataTemplate DataType="{x:Type WPFTests:EnclosedViewModel}">
<WPFTests:EnclosedView />
</DataTemplate>
ビューモデルSidePanelViewModelのコンストラクターが作成するタイプを再作成するため、これは機能しません。私は私が何をしたいのかを推測
がビューを持っている/他のビュー/のviewmodelから
を継承ViewModelに誰かがWPFでのジェネリッククラスを操作すること
なぜ「」を使用する必要がありますか?通常の 'オブジェクト'や 'IViewModel'や' ViewModelBase'のような共有ベースを使うことはできませんか? –
Rachel
@レイチェル私はそれを恋しく思うことができない!あまりにも多くの派手な技術は私に少しばかげてしまったと思う...私が良い答えとしてそれを検証したい場合は、それに答える。 – Guillaume
投稿者回答: – Rachel