我试图在我的主窗口中托管一个用户控件,但我很难决定如何将它实现到我的视图模型中。
首先,我为用户控件创建了一个单独的视图模型,并使用数据模板将其映射到控件,然后再将其托管在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}"/>
这里最好的做法是什么?