我似乎无法将ComboBox
绑定到数组。
我有ObjectDataProvider
:
<ObjectDataProvider x:Key="TypeFromEnum" MethodName="GetValues" ObjectType="{x:Type system:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="property:Property:PropertyType"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
这个绑定:
<DataTemplate x:Key="TypeCellTemplate">
<ComboBox ItemsSource="{Binding Path={StaticResource TypeFromEnum}}" SelectedItem="{Binding Path=Type}"/>
</DataTemplate>
但我收到错误:
无效的资源类型:期望的类型是'PropertyPath',实际类型是'Array'。
当我运行我的程序并尝试使用此ComboBox
打开窗口时,它会崩溃:
PresentationFramework.dll中出现'System.Windows.Markup.XamlParseException'类型的第一次机会异常 附加信息:'为'System.Windows.Markup.TypeExtension'提供价值引发了异常。行号'8'和行位置'12'。
如果存在此异常的处理程序,则可以安全地继续该程序。
答案 0 :(得分:2)
将ObjectDataProvider
设为Source
Binding
而不是Path
:
<ComboBox ItemsSource="{Binding Source={StaticResource TypeFromEnum}}" />