Я читал this very related question here on SO, и это было чрезвычайно полезно из-за ссылки в ответе. У меня просто проблема, которая теперь идет на дополнительный шаг и все это работает с шаблоном MVVM.Сопоставление перечисления с ComboBox в WPF + MVVM
Скажем, у меня есть свой ViewModel, и он (или даже модель) может иметь перечисление определено:
public enum MyTypes { Type1, Type2, Type3 };
Я хочу, чтобы это привязка в ComboBox в моем GUI. Согласно статье, я бы использовал ObjectDataProvider для вызова метода Enum.GetValues () в MyTypes. Поэтому я должен передавать MyTypes как MethodParameter. Но как вы проходите этот тип? Я пробовал различные методы, такие как добавление ссылки на пространство имен в XAML:
<Window.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="TipHandlingValues">
<ObjectDataProvider.MethodParameters>
<!-- what goes here? it's totally wrong. -->
<my:MyTypes />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
Довольно много я ничего не поставить там даже скомпилировать. Кто-нибудь знает, как пройти мимо этого маленького препятствия?
Это может быть простейший, но я не думаю, что это уместно, потому что мой DataContext - это моя ViewModel, вот как я связываю все свои команды и другие комбобокс. У меня есть тонна других элементов графического интерфейса, а не только одно combobox. Что касается «других опций», я думал, что разметка, которую я разместил в моем вопросе, - это то, как вы создаете список значений из перечисления? – Dave
не может быть сделано чистым XAML. и он ищет меня, что с обычным C# это делается намного проще. Создайте свойство в нашей модели ViewModel под названием MyTypesValues и тогда привязайтесь к нему. ({Binding MyTypesValues}). – Andrey