【发布时间】:2018-10-29 16:40:25
【问题描述】:
我有一个 ObjectDataProvider 用于获取枚举成员列表:
<ObjectDataProvider x:Key="GetEnumContents" MethodName="GetValues" ObjectType="{x:Type System:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="Data:Status"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
然后我使用它:
<ComboBox SelectedItem="{Binding Status, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Source={StaticResource GetEnumContents}}" />
在同一个窗口中,我希望有一个用于不同枚举的组合框。如何从 ComboBox 声明中传递枚举类型?
我见过类似问题的解决方案,例如:
Path="MethodParameters[0]"
但在这里我不想将参数绑定到任何东西,我只想在 ComboBox 声明中对其进行硬编码。
有什么想法吗?
【问题讨论】:
-
我很确定
ObjectDataProvider不支持这种功能。您需要每种类型的提供者。 ODP 只是作为方法调用的薄包装器。 -
我认为您可以安装
IValueConverter以获得您想要的功能。给我几分钟试试,如果成功了,我会为你发布答案。