2

我试图在我的主窗口中托管一个用户控件,但我很难决定如何将它实现到我的视图模型中。

首先,我为用户控件创建了一个单独的视图模型,并使用数据模板将其映射到控件,然后再将其托管在ContentControl

数据模板:

<DataTemplate DataType="{x:Type viewModels:TaskbarIconViewModel}">
    <tb:TaskbarIcon/>
</DataTemplate>

XAML:

<ContentControl Content="{Binding TaskbarIconViewModel}"/>

如果我要使用此设置,我将如何调用用户控件上的方法以及如何设置用户控件的属性,无论是在 XAML 中还是在视图模型中?

其次,我的想法是在视图模型中保留用户控件,然后ContentControl再次将其绑定到 a。这对我和 MVVM 来说似乎是错误的。这是正确的吗?在视图模型中保存控件是否可以接受?

在视图模型中:

public TaskbarIcon TaskbarIcon { get; set; }

XAML:

<ContentControl Content="{Binding TaskbarIcon}"/>

这里最好的做法是什么?

4

1 回答 1

5

在 ViewModel 中存储 UserControl:一个很大的禁忌?YES
ViewModel 不应该知道视图。

你在说的是PRISM的地区做什么,不要重新发明轮子;)

于 2013-01-06T02:10:54.870 回答