用来自不同 ViewModel 的项目填充 ComboBox
fill ComboBox with items from different ViewModel
我有一个 ComboBox 绑定到 DataContext SceneViewModel,但我想用来自另一个名为 GearViewModel 的 ViewModel 的 observableCollection 的数据填充它。
我该怎么做呢?或者这可能吗
这是xaml
<UserControl x:Class="MoviePrepper.View.SceneView"
DataContext="{Binding SceneViewModel, Source={StaticResource Locator}}">
<Grid>
<ComboBox ItemsSource="{Binding to observableCollection in GearViewModel}}" SelectedItem="{Binding SceneCollectionView/Equipment, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</UserControl>
您可以使用这样的绑定来实现此目的:
<ComboBox ItemsSource="{Binding GearViewModel.MyCollection, Source={StaticResource Locator}}"
SelectedItem="{Binding Equipment, UpdateSourceTrigger=PropertyChanged}"/>
其中 ItemsSource
属性 绑定到 Locator
中的 GearViewModel.MyCollection
属性,而 SelectedItem
绑定到 SceneViewModel.Equipment
(由 UserControl
的 DataContext
设置)。
不清楚 属性 您在 SelectedItem
属性 上绑定的确切想法,所以我做了一些假设。
任何人,这应该可以解决将 ItemsSource
属性 绑定到不同视图模型的问题。
我有一个 ComboBox 绑定到 DataContext SceneViewModel,但我想用来自另一个名为 GearViewModel 的 ViewModel 的 observableCollection 的数据填充它。 我该怎么做呢?或者这可能吗
这是xaml
<UserControl x:Class="MoviePrepper.View.SceneView"
DataContext="{Binding SceneViewModel, Source={StaticResource Locator}}">
<Grid>
<ComboBox ItemsSource="{Binding to observableCollection in GearViewModel}}" SelectedItem="{Binding SceneCollectionView/Equipment, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</UserControl>
您可以使用这样的绑定来实现此目的:
<ComboBox ItemsSource="{Binding GearViewModel.MyCollection, Source={StaticResource Locator}}"
SelectedItem="{Binding Equipment, UpdateSourceTrigger=PropertyChanged}"/>
其中 ItemsSource
属性 绑定到 Locator
中的 GearViewModel.MyCollection
属性,而 SelectedItem
绑定到 SceneViewModel.Equipment
(由 UserControl
的 DataContext
设置)。
不清楚 属性 您在 SelectedItem
属性 上绑定的确切想法,所以我做了一些假设。
任何人,这应该可以解决将 ItemsSource
属性 绑定到不同视图模型的问题。