2015-02-24 80 views
1

在我的視圖模型,物業我綁定的是:WPF:一些導致錯誤的組合框Expression Blend的主題結合/顯示

Products = new Dictionary<string, string>(){ 
     {"0001", "Test Product 1"}, 
     {"0002", "Test Product 2"}, 
     {"0003", "Test Product 3"} 
    }; 

在我的XAML中,我有以下的綁定:

<ComboBox Grid.Row="1" Grid.Column="1" DisplayMemberPath="Value" SelectedValuePath="Key" VerticalAlignment="Center" 
     ItemsSource="{Binding Path=DataContext.Products, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}"/> 

進一步,在我XAML我加載我的資源字典,包括表達共混主題是這樣的:

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="AppResourceDict.xaml" /> 
      <ResourceDictionary Source="Themes/ExpressionLight.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

上面很好地工作。但是,如果我改變「主題/ ExpressionLight.xaml」爲「主題/ BureauBlue.xaml」或「主題/ BureauBlack.xaml」,什麼是顯示在組合框中的下拉是:

["0001","Test Product 1"] 
["0002","Test Product 2"] 
["0003","Test Product 3"] 

這些主題在某種程度上是造成組合框顯示鍵+值。這是一個錯誤?有誰知道如何解決?

回答

1

這是主題中的錯誤。您可以修改主題中的控件模板,也可以在組合框中使用ItemTemplate:

<DataTemplate x:Key="ValueDataTemplate"> 
    <TextBlock Text="{Binding Value}" /> 
</DataTemplate> 

<ComboBox ItemTemplate="{StaticResource ValueDataTemplate}" SelectedValuePath="Key" 
    ItemsSource="{Binding Products}" />