Pregunta

A veces los ejemplos más sencillos son los más difíciles de encontrar. . .

Tengo una cuadrícula de datos con 2 columnas. Una columna contiene información de roles, la otra columna debe tener un cuadro combinado con una lista de usuarios disponibles. Los datos en el cuadro combinado no está relacionada con los datos en la primera columna. Estoy echado fuera por el hecho de que el cuadro combinado no tiene un DataContext, sólo ItemSource y me parece que no puede usar ya sea vinculante.

Por favor alguien puede apuntar a un ejemplo simple que utiliza dos conjuntos de datos diferentes para los datos en una tabla y el cuadro combinado?

¿Fue útil?

Solución

las columnas de la cuadrícula de datos no tiene un DataContext, ya que nunca se agregan al árbol visual. sonar un poco extraño, pero echar un vistazo a Vinces blog, su conseguido un buen ejemplo de la disposición visual. una vez que se dibuja la cuadrícula las células tienen un contexto de datos y se puede ajustar la fuente de cuadros combinados artículos en ellos usando enlaces normales (recursos no estáticas ..)

se puede acceder a la fuente de elementos del cuadro combinado como tal

   <dg:DataGridComboBoxColumn>
      <dg:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=MyBindingPath}" />
        </Style>
      </dg:DataGridComboBoxColumn.EditingElementStyle>
   </dg:DataGridComboBoxColumn>

también aquí por algún código

Otros consejos

En lugar de utilizar DataGridTextColumns se utiliza un DataGridComboBoxColumn lugar. Entonces uno se llena en los datos utilizando el ItemsSource, que en el ejemplo puntos por debajo a una enumeración externa en el recurso estático y, finalmente, uno se une el resultado al objeto de destino que llevará a cabo la selección del usuario en el SelectedItemBinding.

<DataGrid.Columns>

<DataGridComboBoxColumn Header="MySelections"  
                        SelectedItemBinding="{Binding MySelectionsProperty}" 
                        ItemsSource="{Binding Source={StaticResource mySelectionsEnum}}" />
</DataGrid.Columns>

Vea un ejemplo completo en MSDN en Clase DataGridComboBoxColumn

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