我正在學習WPF和我有一個關於綁定一個組合框的問題在WPF中,如何將組合框綁定到TabControl項目?
我有一個簡單的WPF窗口,帶有以下控件:一個ComboBox在頂部,一個TabControl在它下面。
我用兩個標準TabItems填充tabcontrol。然後,我添加了一些標籤 - 但是這些是我自己的「MyTab」類,它只是繼承了TabItem。我並沒有壓倒一切,也沒有做任何異乎尋常的事情,我只是添加了一些公共財產。
我想使用ComboBox作爲導航工具。每個選項卡都有一個標題,並且該標題應該成爲ComboBox中的一個項目。如果從組合框中選擇,它應該使相應的選項卡成爲活動的選項卡。
這裏是我的組合框設置:
<Window.Resources>
<DataTemplate x:Key="EmployeeListTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Header}" />
</StackPanel>
</DataTemplate>
</Window.Resources>
..然後在XAML進一步下跌...
<ComboBox Grid.Row="1" Width="500" Name="qlist"
ItemsSource="{Binding ElementName=tabControl1, Path=Items}"
ItemTemplate="{StaticResource EmployeeListTemplate}" />
所以我只是結合到TabControl的項目收集和採摘標題作爲SelectedItem的屬性顯示。
它的作品,當我點擊組合框,標題確實顯示爲單個文本項目。但是當我做出實際選擇時,該選項卡本身會在該組合框的選擇區域中呈現!
我該如何解決這個問題?爲什麼它爲列表使用Header屬性,但是當我從列表中選擇時,它顯示的值將變成實際的TabItem對象?我覺得我失去了一些明顯的東西
順便說一下,我知道我說過我想用這個來控制導航,但是我把所有這些都刪掉了,在我弄清楚這件令人發狂的事情後我會擔心它。
細心觀察 - 當我拿起tabItem1從ComboBox,它實際上重新呈現,該控件內標籤項目。您可以看到它的頂部,由列表項使用的標準藍色選擇背景環繞。鬱悶了。
我在做什麼錯在這裏?感謝您的幫助
這是WPF中的一個實際錯誤。有一個解決方案,它張貼在這裏:http://stackoverflow.com/questions/546119/controlling-the-tabcontrol-active-tab-with-a-combobox – Zadam
這是非常有益的!謝謝!與此同時,我用一個Listbox代替它,並且它工作正常。包括雙向綁定,所以我可以從選項卡控件或列表中選擇活動選項卡。這讓我瘋狂。謝謝你給我另一個參考 –