[英]Binding from parents Viewmodel
我有一个其中有一个listbox
的视图。 我将listbox
绑定到ListBoxViewModel的集合,该集合是MainViewModel的属性。 然后,我有一个listbox
的dataTemplate
,其中IM绑定到ListBoxViewModel的属性。 包含列表框的视图的datacontext设置为mainVeiwModel。 如何绑定到其ItemSource
绑定到ListBoxVIewModels集合的listbox
的dataTemplate
中MainViewModel的属性?
此combobox
位于listBox
datatemplate
,其datatemplate
itemsoucrce
绑定到itemsoucrce
的集合。 请注意,我尝试绑定到MainViewModel性能以及ListBoxViewModel性质与在datatemplate
<ListBox ItemSource="{Binding Path=CollectionOfListBoxViewModelsInMainViewModel}"
<DataTemplate>
.....
<ComboBox Margin="6"
Width="300"
IsEditable="True"
ItemsSource="{Binding Path=MainViewModelProperty}" //binding not working
SelectedItem="{Binding ListBoxViewModelProperty}" //binding works
Text="{Binding ListBoxViewModelProperty, UpdateSourceTrigger=LostFocus}"/> //binding works
.....
</DataTemplate>
</ListBox>
最简单的方法:
<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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.