我得到了兩個Comboboxes,並且它們都綁定了相同的Source。WPF Combobox綁定
<ComboBox ItemsSource="{Binding Source={StaticResource UsersViewSource}}"
而當我改變了第一個東西的時候,它也反映了第二個。我不知道如何使用相同的ItemsSource單獨保留SelectedItem值。
我得到了兩個Comboboxes,並且它們都綁定了相同的Source。WPF Combobox綁定
<ComboBox ItemsSource="{Binding Source={StaticResource UsersViewSource}}"
而當我改變了第一個東西的時候,它也反映了第二個。我不知道如何使用相同的ItemsSource單獨保留SelectedItem值。
的IsSynchronizedWithCurrentItem屬性應設置爲False:
如果屬實的的SelectedItem總是 與當前同步項目 ItemCollection;如果 SelectedItem不會與當前項目同步 ,則返回false;如果 SelectedItem與 當前項目同步,則僅當選擇器使用CollectionView時使用 時爲null。默認值爲 null。
這裏有一個例子:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<x:Array x:Key="myStrings" Type="sys:String">
<sys:String>one</sys:String>
<sys:String>two</sys:String>
<sys:String>three</sys:String>
<sys:String>four</sys:String>
<sys:String>five</sys:String>
</x:Array>
</Page.Resources>
<StackPanel Width="200">
<ComboBox IsSynchronizedWithCurrentItem="False" Margin="25"
ItemsSource="{Binding Source={StaticResource myStrings}}" />
<ComboBox IsSynchronizedWithCurrentItem="False" Margin="25"
ItemsSource="{Binding Source={StaticResource myStrings}}" />
</StackPanel>
</Page>
您可以單獨爲每個組合框單獨綁定SelectedItem屬性。
即
SelectedItem={Binding SelectedItem1}
這樣,當每個人的項目被設定,它被存儲到不同的地方。
你只需要到IsSynchronizedWithCurrentItem
屬性設置爲false(默認情況下它是空)
我猜(從名字你的綁定),這是發生的原因是,你綁定到CollectionViewSource
(一個包裝了採集)。此類是WPF使用的代理,其中包括(除其他之外)集合中選定的項目。顯然,如果你在兩個組合框之間共享這個集合,那麼你也會共享選定的項目。
如果您將ItemsSource
設置爲而不是 a CollectionViewSource
,控件將自動將其包裝爲一個。因此,我的建議是直接綁定到集合,而不是包裝在CollectionViewSource
中 - 或者,也可以創建兩個CollectionViewSource
實例,每個實例一個ComboBox
。
您的回答的諷刺之處在於 - 正如您的引用所解釋的那樣 - 您的引用代碼中的IsSynchronizedWithCurrentItem =「False」是完全不必要的,因爲您沒有綁定到「CollectionView」。如果將這些屬性取出,組合框仍未鏈接。 – 2010-03-16 23:23:49
同意它可能不是最好的例子,但將值設置爲True,並且它們同步,就好像它們綁定到一個CollectionView(我的假設)。如果確實這不適用於CollectionView,那麼請盡我所能刪除答案並離開學習自己的東西。 – 2010-03-17 00:01:57
把一個快速項目扔在一起,並進行測試,看看IsSynchronizedWithCurrentItem屬性是否可以與一個CollectionView一起工作,它確實有效。誠然,我的答案並不完全正確,但它確實提供了一個快速的Kaxaml示例;) – 2010-03-17 01:36:54