用来自不同ViewModel的项目填充组合框

本文关键字:项目 填充 组合 ViewModel | 更新日期: 2023-09-27 18:18:34

我有一个绑定到DataContext SceneViewModel的ComboBox,但我想用来自另一个ViewModel称为GearViewModel的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>

用来自不同ViewModel的项目填充组合框

您可以使用这样的绑定来实现这一点:

<ComboBox ItemsSource="{Binding GearViewModel.MyCollection, Source={StaticResource Locator}}" 
          SelectedItem="{Binding Equipment, UpdateSourceTrigger=PropertyChanged}"/>

其中ItemsSource属性绑定到您的Locator中的GearViewModel.MyCollection属性,SelectedItem绑定到SceneViewModel.Equipment(由UserControl中的DataContext设置)。

目前还不清楚您想要在SelectedItem属性上绑定什么属性,因此我做了一些假设。

无论如何,这应该解决绑定您的ItemsSource属性到不同的视图模型的问题。