2009-11-12 34 views
10

A veces los ejemplos más fáciles son los más difíciles de encontrar. . .WPF - ejemplo con DataGridComboBoxColumn

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án relacionados con los datos en la primera columna. Me deslumbra el hecho de que el cuadro combinado no tiene un contexto de datos, solo un elemento y tampoco parece que use el enlace.

¿Puede alguien indicarme un ejemplo simple que utiliza dos conjuntos de datos diferentes para los datos en una tabla y el cuadro combinado?

Respuesta

7

las columnas en la cuadrícula de datos no tienen un contexto de datos, ya que nunca se agregan al árbol visual. suena un poco extraño pero echa un vistazo a vinces blog, tiene 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 (no recursos estáticos ..)

puede acceder a la combinación de elementos de cuadro de fuente como tal

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

echar un vistazo here y también here por algún código

1

en lugar de utilizar DataGridTextColumns se utiliza un DataGridComboBoxColumn lugar. Luego, se rellenan los datos utilizando ItemsSource, que en el ejemplo siguiente apunta a una enumeración externa en el recurso estático, y finalmente se vincula el resultado al objeto objetivo que contendrá la selección del usuario en el SelectedItemBinding.

<DataGrid.Columns> 

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

Véase un ejemplo completo de MSDN en DataGridComboBoxColumn Class

Cuestiones relacionadas