我想封裝視圖/ viewmodel到另一個視圖/ viewmodel。目的是要有一個彈出窗口,幻燈片面板或任何你能想到的常見行爲,並在其中插入一個自定義視圖/視圖模型。繼承或封裝View/Viewmodel
我要使用通用的做這件事,但我那種堅持
父視圖模型將看起來像
public class SidePanelViewModel<T>
{
public SidePanelViewModel(T enclosedViewModel)
{
EnclosedViewModel = enclosedViewModel;
}
public T EnclosedViewModel { get; private set; }
}
父視圖會像
... whatever design and behavior ...
<ContentPresenter Content="{Binding EnclosedViewModel}"/>
... whatever design and behavior ...
在我的映射文件,我想說,但這裏是問題:
<DataTemplate DataType="{x:Type WPFTests:SidePanelViewModel}">
<WPFTests:SidePanelView />
</DataTemplate>
<DataTemplate DataType="{x:Type WPFTests:EnclosedViewModel}">
<WPFTests:EnclosedView />
</DataTemplate>
這不起作用,因爲viewmodel SidePanelViewModel的構造函數需要創建一個類型。
我想我想要做的是有一個視圖/視圖模型從另一種觀點/視圖模型
希望有人能對
爲什麼你需要使用''?難道你不能只使用常規的'對象'或某種共享的基礎,如'IViewModel'或'ViewModelBase'嗎? –
Rachel
2012-02-16 13:58:14
@Rachel我不能相信我想念!我想太多花哨的技術讓我變得有點愚蠢......如果你願意的話,回答它我會驗證它是一個很好的答案。 – Guillaume 2012-02-16 15:06:44
作爲回答發表:) – Rachel 2012-02-16 15:09:34