He leído this very related question here on SO, y fue extremadamente útil debido al enlace en la respuesta. Solo estoy teniendo un problema ahora, dando el paso extra y haciendo que todo funcione con el patrón MVVM.Encuadernación de una enumeración a un ComboBox en WPF + MVVM
Digamos que tengo a mi modelo de vista, y él (o incluso el modelo) podría tener una enumeración define:
public enum MyTypes { Type1, Type2, Type3 };
Quiero DataBind a un cuadro combinado en mi interfaz gráfica de usuario. De acuerdo con el artículo, usaría un ObjectDataProvider para invocar el método Enum.GetValues () en MyTypes. Así que tengo que pasar MyTypes como MethodParameter. ¿Pero cómo pasas el tipo? He intentado varios métodos, como la adición de la referencia al espacio de nombres en 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>
Casi nada de lo que puso en su lugar, incluso compilar. ¿Alguien sabe cómo superar este pequeño obstáculo?
que podría ser el lo más simple, pero no creo que sea apropiado porque mi DataContext es mi ViewModel, que es como yo vinculo todos mis comandos y otros comboboxes. Tengo una tonelada de otros elementos de la GUI además del solo cuadro combinado. En cuanto a las "otras opciones", pensé que el marcado que publiqué en mi pregunta es cómo se produce la lista de valores de la enumeración. – Dave
puede que no haya forma de hacerlo por XAML puro. y me parece que se hace mucho más fácil con C# regular. Crea una propiedad en nuestro ViewModel llamada MyTypesValues y únete a in en ese momento. ({Binding MyTypesValues}). – Andrey