Я искал вокруг, и кажется очень простым связать перечисления с combobox, просто получить значения Enum в виде списка строк с помощью ObjectDataProvider из статического метода Enum.GetValues, однако я не могу заставить его работать. Ошибка: тип ContactExportType не найден.Сочетание ComboBox с перечислением, что я сделал не так?
У меня есть перечисление, называемое ContactExportType, оно находится на классе Enums. Этот класс является частью пространства имен CEM.Marketing.Objects.
Это то, что я есть:
<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}}"
...
Спасибо, Angela
Спасибо Крис за вашу помощь. Я не мог сделать это в XAML, пробовав разные вещи. Похоже, что он не поддерживает один уровень в структуре класса. То, что я сделал, чтобы заставить его работать, - связать itemSource в коде позади. combobox.ItemsSource = Enum.GetValues (typeof (Enums.ContactExportType)); – Angela