我在下面有下面的代碼。 WordList
是Word
的ObservableCollection
。顯式設置ItemTemplate的Datacontext
我試圖完成的事情是將每個項目的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? – Clemens
好的,如果我將'NewWordViewModel'的所有內容移動到'NewWord'包括這些命令,這個就行得通了。但是,我現在怎樣才能爲命令編寫測試? ViewModel的目的是解耦類和啓用單元測試。 –