Tengo un WPF Datagrid poblado con datos de una tabla SQL usando Entity Framework, ¿es posible completar un cuadro combinado en el mismo Datagrid usando datos de una tabla diferente?

Tengo este código funcionando

                <DataGridTemplateColumn x:Name="reasonColumn" Header="Reason" Width="Auto">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox>
                            <ComboBoxItem Content="Supplier Quantity"/>
                            <ComboBoxItem Content="Supplier Price"/>
                            <ComboBoxItem Content="Supplier Numbers"/>
                            <ComboBoxItem Content="Supplier Codes"/>
                            <ComboBoxItem Content="Branch Quantity"/>
                            <ComboBoxItem Content="Branch Numbers"/>
                            <ComboBoxItem Content="Branch Codes"/>
                            <ComboBoxItem Content="IM Numbers"/>
                            <ComboBoxItem Content="Pop Prices"/>
                        </ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

Pero preferiría que se poblara dinámicamente.

Gracias.

0
Noelle 10 nov. 2011 a las 17:07

1 respuesta

La mejor respuesta

Sí, simplemente vincule su ComboBox.ItemsSource donde sea que esté su colección

Por ejemplo, esto vinculará una colección del DataContext de su DataGrid:

<ComboBox ItemsSource="{Binding DataContext.MyComboBoxList, 
          RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />

Como otro ejemplo, esto se vinculará a una clase estática que contiene su colección

<ComboBox ItemsSource="{Binding 
          Source={x:Static local:MyStaticClass.MyComboBoxList}" />
1
Rachel 10 nov. 2011 a las 17:53
¿Es posible cuando la cuadrícula se completa con CollectionViewSource?
 – 
Noelle
10 nov. 2011 a las 18:11
1
Ambos ejemplos mostrados están vinculados a colecciones que no están relacionadas con la fuente de la cuadrícula real. El primer ejemplo se une a DataGrid.DataContext.MyComboBoxList, por lo que puede configurar myDataGrid.DataContext = SomeClass y tener una propiedad en SomeClass llamada MyComboBoxList. El segundo ejemplo se vincula a una clase static en su proyecto llamada MyStaticClass, que también contendría una propiedad llamada MyComboBoxList
 – 
Rachel
10 nov. 2011 a las 18:19