ComboBox contraignant à enum, qu'est-ce que je fais mal?
J'ai cherché partout et il semble très facile de lier les énumérations de zone de liste déroulante, juste récupérer les valeurs de l'Enum comme une liste de chaînes de caractères via un ObjectDataProvider de la statique Enum.GetValues méthode, mais je ne peux pas le faire fonctionner. L'erreur est de Type ContactExportType n'a pas été trouvé.
J'ai un enum appelé ContactExportType, il réside sur les Énumérations de classe. Cette classe fait partie de la CEM.De Marketing.Les objets de l'espace de noms.
C'est ce que j'ai:
<UserControl
xmlns:local="clr-namespace:CEM.Marketing.Objects"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Grid>
<Grid.Resources>
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type sys:Enum}"
x:Key="ContactExportTypes">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:ContactExportType" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Grid.Resources>
</Grid>
<ComboBox
ItemsSource="{Binding {StaticResource ContactExportTypes}}"
...
Grâce,
Angela
source d'informationauteur Angela
Vous devez vous connecter pour publier un commentaire.
D'accéder à un ensemble de type, vous devez utiliser le "+" séparateur :
Par le façon, il ya un moyen plus simple de lier les valeurs de l'enum, sans l'aide d'un ObjectDataProvider. Il est basé sur un custom extension de balisage :
Voici le code pour le EnumValues extension de balisage :
devrait être
et
devrait être
le sys:Enum points Enum cadre de la classe
le nom du type dans le paramètre de points à votre pleinement qualifiés de type nom.
vérifier Bea Stollnitz blog