2015-10-21 81 views
0

我有一個綁定到DataContext的SceneViewModel的ComboBox,但是我想用名爲GearViewModel的另一個ViewModel的observableCollection中的數據填充它。 我該怎麼做?或者這是可能的。用ComboBox填充不同ViewModel的項目

這裏是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> 
+0

你是否需要將你的'ComboBox'綁定到兩個'ObservableCollection'(一個在'SceneViewModel'中,另一個在'GearViewModel'中)?或者只是將項目綁定到'GearViewModel ObservableCollection'? – ZwoRmi

+0

綁定到GearViewModel中的項ObservableCollection – Phil

+0

所以,如果你想以正確的方式使用MVVM,你需要在你的'SceneViewModel'中有一個'GearViewModel'。 – ZwoRmi

回答

0

可以使用這樣的結合實現這一目標:

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

ItemsSource屬性綁定到GearViewModel.MyCollection財產在你LocatorSelectedItem結合SceneViewModel.Equipment(由UserControlDataContext設置)。

您不清楚在SelectedItem屬性上綁定什麼屬性,所以我做了一些假設。

任何人都應該解決將您的ItemsSource屬性綁定到不同視圖模型的問題。

+0

非常好,謝謝! – Phil