如何绑定枚举值

如何绑定枚举值

你不能够直接地绑定枚举的值到一个列表控件,因为枚举类型不提供一个属性返回所有值。只有一个方法获取所有名字通过调用GetNames方法。但是如何在XAML中调用一个方法?
诀窍是使用ObjectDataProvider(对象内容提供者),允许你指定一个方法和它的参数,并从XAML中调用它。结果可以被普通的数据绑定使用。

xmlns:sys="clr-namespace:System;assembly=mscorlib"
<Window.Resources>
    <ObjectDataProvider x:Key="alignments" MethodName="GetNames" ObjectType="{x:Type sys:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="VerticalAlignment">
        </ObjectDataProvider.MethodParameters>
    <ObjectDataProvider>
</Window.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource aligmnments}}" />
posted @ 2023-08-21 08:43  Juston007  阅读(18)  评论(0)    收藏  举报