2017-06-23 70 views
0

如果我有三個不同的數據源,例如:綁定多個數據源到一個單一的XAML組合框

<CollectionViewSource x:Key="Layer"/> 
<CollectionViewSource x:Key="New" /> 
<CollectionViewSource x:Key="Option" />  

如果我想所有的結果去到一個單一的組合框,我將如何綁定多個來源?

我可以得到一個綁定工作:

<ComboBox ItemsSource="{Binding Source={StaticResource Layer}}" /> 

但我想這樣的事情(不工作):

<ComboBox ItemsSource="{Binding Source={StaticResource Layer, New, Option}}" /> 

有沿類似我可以做的東西線相反,還是我缺少某些東西或錯誤的語法?

回答

1

我認爲一個CompositeCollection應該工作:

<UserControl.Resources> 
    <CollectionViewSource x:Key="Layer" Source="{Binding Layer}" /> 
    <CollectionViewSource x:Key="New" Source="{Binding New}" /> 
    <CollectionViewSource x:Key="Option" Source="{Binding Option}" /> 
</UserControl.Resources> 

然後

<ComboBox.ItemsSource> 
    <CompositeCollection> 
      <CollectionContainer Collection="{Binding Source={StaticResource Layer}}" /> 
      <CollectionContainer Collection="{Binding Source={StaticResource New}}" /> 
      <CollectionContainer Collection="{Binding Source={StaticResource Option}}" />       
    </CompositeCollection> 
</ComboBox.ItemsSource> 
-1

你嘗試MultiBinding? 我看到MultiBinding的this example和它看起來像你所需要的。 這是來自例如:

 <ComboBox Height="30" Width="150" Margin="5" > 
     <ComboBox.ItemsSource> 
      <MultiBinding Converter="{StaticResource ConditionToItemSourceConverter}"> 
       <Binding Path="IsPerson"/> 
       <Binding Path="Persons"/> 
       <Binding Path="Employees"/> 
      </MultiBinding> 
     </ComboBox.ItemsSource> 
    </ComboBox> 

而且你總是可以在代碼結合3個源1,並將其綁定到ComboBox。

相關問題