0
根據此答案https://stackoverflow.com/a/33109026/426386 我向我的ComboBox集合添加一個空項目。正如我的組合框已經定義了的SelectedValue和SelectedValuePath,我會碰到Bindingerrors:具有SelectedValuePath綁定的空ComboBoxItem
<UserControl.Resources>
<ObjectDataProvider
x:Key="CardTypeProvider"
MethodName="GetLocalizedEnumValues"
ObjectType="{x:Type base:Localize}">
<ObjectDataProvider.MethodParameters>
<x:Type
TypeName="base:CardTypes" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
<ComboBox
DisplayMemberPath="Value"
SelectedValue="{Binding GroupByCardType, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Key">
<ComboBox.Resources>
<CollectionViewSource
x:Key="Items"
Source="{Binding Source={StaticResource CardTypeProvider}}" />
</ComboBox.Resources>
<ComboBox.ItemsSource>
<CompositeCollection>
<TextBlock />
<CollectionContainer
Collection="{Binding Source={StaticResource Items}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
的ObjectDataProvider的回報以下類型:
Dictionary<Enum, string>
爲了避免綁定錯誤我想實例化一個KeyValuePair<Enum, string>
代替TextBlock。不知何故?
根據http://stackoverflow.com/a/1708753/426386我能夠建模一個泛型類型,但我能夠實例化它嗎?或者更簡單的問:我可以創建類型的實例(或者以某種方式包裝它)? – Florian
您不能在XAML中創建各種類型的實例。你可以定義一個封裝KeyValuePair類的非泛型類,或者你可以根據我的答案添加一個Key和Value屬性。所有元素都是某種類型的實例。 –
mm8