我的视图中包含listbox
。我将listbox
绑定到ListBoxViewModel的集合,该集合是MainViewModel的属性。然后,我为dataTemplate
提供listbox
,其中im绑定到ListBoxViewModel的属性。包含列表框的视图将datacontext设置为mainVeiwModel。如何绑定dataTemplate
的{{1}}中MainViewModel的属性,该listbox
的{{1}}绑定到ListBoxVIewModel的集合?
此ItemSource
位于combobox
listBox
中,其datatemplate
绑定到ListBoxViewModel集合。请注意我试图在itemsoucrce
datatemplate
答案 0 :(得分:1)
最简单的方法:
<YOURWINDOW x:Name="MyWindow">
<ListBox ItemSource="{Binding Path=CollectionOfListBoxViewModelsInMainViewModel}"
<DataTemplate>
.....
<ComboBox Margin="6"
Width="300"
IsEditable="True"
ItemsSource="{Binding ElementName=MyWindow, Path=DataContext.MainViewModelProperty}"
SelectedItem="{Binding ListBoxViewModelProperty}" //binding works
Text="{Binding ListBoxViewModelProperty, UpdateSourceTrigger=LostFocus}"/> //binding works
.....
</DataTemplate>
</ListBox>
</YOURWINDOW>
1)请记住,MyWindow必须将DataContext设置为MainViewModel。您可以使用任何UI元素,它不必是Window。 2)第二种解决方案是使用RelativeSource而不是ElementName。