我再次遇到與XAML中的綁定有關的問題,我無法自己解決。我有一個ListView
和一個ComboBox
在裏面。 ListView
的ItemsSource
位於TabControl
的視圖模型上,ComboBox.ItemsSource
也是如此。我怎樣才能綁定這個集合上的ComboBox
?在選項卡的屬性上綁定列表視圖中的組合框
這是我到目前爲止的代碼:
<ListView ItemsSource="{Binding ListViewSource}" SelectedItem="{Binding ListViewSelection}"
ItemTemplate="{DynamicResource ListViewTemplate}">
<ListView.View>
<GridView>
<GridViewColumn Header="...">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ComboBoxSource}"
SelectedValue="{Binding ...}"
DisplayMemberPath="DisplayName"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn> // ...
而這裏僅僅是在TabViewModel
的ItemsSource
性質的頭:
public ObservableCollection<TypeViewModel> ComboBoxSource { get; set; }
public ObservableCollection<CostViewModel> ListViewSource { get; set; }
是否可以綁定在該屬性CombBox.ItemsSource
?
在CellTemplate結合,在猜測:'的ItemsSource =」 {綁定DataContext.ComboBoxSource,RelativeSource = {RelativeSource AncestorType = ListView}}「'。 –
根據之前的評論,相對來源可以做你想做的。不幸的是,你的問題並沒有說明爲什麼你的'ListView'中的每個項目都有相同的下拉菜單,但是如果由於某種原因相對源方法不適合你的需求,那麼對於每個'TypeViewModel '暴露自己的'ComboBoxSource'屬性,它簡單地委託給父視圖模型(例如'... ComboBoxSource {get {return _parentViewModel.ComboBoxSource;}}'或者取決於這些值的來源,甚至可能是一個單身。有很多可能的答案 –
謝謝你們的回答。不幸的是,這並不適用於我,但現在我按照KMCho在答案中解釋它的方式解決了它{Binding ElementName = ControlName,Path = DataContext.ComboBoxSource } – stl