【发布时间】:2016-01-14 21:19:47
【问题描述】:
我在下面有以下代码。 WordList 是 ObservableCollection 的 Word 的。
我想要完成的事情是将每个项目的DataContext 设置为包装类NewWordViewModel,而不是默认设置的Word 对象。 CorrespondingWord 是 NewWordViewModel 的依赖属性。
问题是 xaml 代码创建了一个NewWordViewModel 并将其设置为DataContext,但没有将CorrespondingWord 属性设置为实际的Word 对象。
是否有设置此属性的 xaml 方式?
<ItemsControl ItemsSource="{Binding WordList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ui:NewWord>
<ui:NewWord.DataContext>
<viewModels:NewWordViewModel CorrespondingWord="{Binding}"/>
</ui:NewWord.DataContext>
</ui:NewWord>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
【问题讨论】:
-
将
CorrespondingWord属性移动到NewWord控件并删除NewWordViewModel不是更简单吗? -
好的,如果我将
NewWordViewModel的所有内容移动到NewWord包括命令,这将有效。但是,我现在如何为命令编写测试? ViewModel 的目的是解耦类并启用单元测试。
标签: c# wpf xaml data-binding datacontext