我對MVVM非常陌生。轉義WPF DataContext
我有下面這段XAML代碼:
<ListBox x:Name="lsbTriggers" ItemsSource="{Binding SelectedProductPart.TriggerViewModels}">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate >
<ComboBox SelectedItem="{Binding WatchedVariable}"
ItemsSource="{Binding SelectedProductPart.AllVariables}" >
</ComboBox>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我試圖讓包含每個TriggerViewModel組合框列表。
組合框的選定項目由TriggerViewModel的WatchedVariable屬性確定。
但是,我希望組合框的ItemsSource是由SelectedProductPart對象提供的變量列表。 我似乎無法做到這一點,因爲datacontext已經「放大」,如果你願意的話,在TriggerViewModels上,由於它是列表的ItemsSource。
我試過在組合框內創建一個新的DataContext,但是這似乎創建了兩個斷開的DataContexts,其中更改組合框的值不會導致TriggerViewModel的WatchedVariable發生更改。
有沒有一種方法,我可以轉義當前的DataContext,所以我可以到SelectedProductPart的AllVariables列表?
http://msdn.microsoft.com/en-us/library/system.windows.data.relativesource(v=vs.110).aspx? – 2014-10-30 16:45:26