我想封装视图/ 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