Wpf MVVM绑定视图特定的数据类型

Wpf MVVM绑定视图特定的数据类型,wpf,mvvm,architecture,Wpf,Mvvm,Architecture,我想知道如何从ViewModel中将视图特定的数据类型绑定到视图 更具体地说,我有一个ContextMenu作为DatagridView的一部分。现在,我可以将ContextMenu的ItemSource绑定到MenuItems列表或字符串列表( 在WPF中,我们操作的是数据对象,而不是UI对象。因此,您的视图模型中不应该有任何UI对象。解决此问题的正确方法是操作视图模型中的数据对象,然后我们可以使用在数据模板中声明的UI控件进行数据绑定。因此,在您的情况下,您可以e具有要绑定到MenuItem

我想知道如何从ViewModel中将视图特定的数据类型绑定到视图

更具体地说,我有一个ContextMenu作为DatagridView的一部分。现在,我可以将ContextMenu的ItemSource绑定到MenuItems列表或字符串列表( 在WPF中,我们操作的是数据对象,而不是UI对象。因此,您的视图模型中不应该有任何UI对象。解决此问题的正确方法是操作视图模型中的数据对象,然后我们可以使用在
数据模板
中声明的UI控件进行数据绑定。因此,在您的情况下,您可以e具有要绑定到
MenuItem.Header
属性和另一个要绑定到
MenuItem.Command
属性的自定义对象的集合,例如:

<DataTemplate DataType="{x:Type YourPrefix:YourCustomType}">
    <MenuItem Header="{Binding Header}" Command="{Binding Command}" />
</DataTemplate>

...

<Menu ItemsSource="{Binding YourCustomTypeCollection}" />

...

它实际上不起作用,但这不是你的错,我认为这是Caliburn绑定命令方式的错。我现在明白该如何处理了,谢谢!
<DataTemplate DataType="{x:Type YourPrefix:YourCustomType}">
    <MenuItem Header="{Binding Header}" Command="{Binding Command}" />
</DataTemplate>

...

<Menu ItemsSource="{Binding YourCustomTypeCollection}" />