Pregunta

Tengo un diálogo que permite al usuario elegir un icono personalizado. iconos cargados se muestran en un cuadro combinado en el que el usuario realiza la selección. Aquí está el código XAML para el cuadro combinado:

<ComboBox 
    Style="{DynamicResource IconComboBox}"
    ItemTemplate="{StaticResource IconTemplate}"
    ItemsSource="{Binding Icons,
        RelativeSource={RelativeSource FindAncestor, 
            AncestorType={x:Type UserControl}}}"
    SelectedItem="{Binding Icon}"
    />
  • iconos es una propiedad que devuelve una matriz de BitmapFrame .
  • icono es una propiedad para el seleccionado actualmente.

Lo que actualmente no funciona es que cuando a través del código detrás establece la propiedad Icon (por ejemplo, cuando se muestra el icono que el usuario escogió la última vez que se muestra el cuadro de diálogo), la selección Combobox es sólo en blanco. Como si hubiera establecer la propiedad en null antes de llamar OnPropertyChanged.

Mi teoría actual es que WPF no se puede comparar BitmapFrames, por lo que al caminar por la lista falla para determinar cualquiera de los iconos de allí el "iguales" y por lo tanto asume nula.

En resumen; ¿cuál es la mejor manera de recorrer el código establecido por detrás del elemento seleccionado en ese momento, que es un BitmapFrame, en un cuadro combinado?

¿Fue útil?

Solución

Puede utilizar SelectedItem o SelectedIndex en el código detrás para ajustar el elemento seleccionado en ese momento!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top