Pregunta

Aceptar Así que tengo un cuadro combinado que selecciona un administrador de una lista de administradores:

<ComboBox x:Name="adminCombo"
          ItemsSource="{Binding AdminsList}"
          DisplayMemberPath="Name"
          SelectedValue="{Binding Administrator}"
          SelectedValuePath="Name"/>

y por debajo de este tengo una WPF Toolkit DataGrid. Cada administrador tiene una lista de campos definidos por el usuario (AvailableUDFs). En la primera columna de la cuadrícula de datos de mi Quiero tener una plantilla editable que consiste en otro cuadro combinado artículos cuya fuente es la lista de los campos que pertenecen al administrador seleccionado. El siguiente código no funciona.

<toolkit:DataGrid 
     AutoGenerateColumns="False"
     ItemsSource="{Binding Path=UserDefinedFields}">
     <toolkit:DataGrid.Columns>
        <toolkit:DataGridTemplateColumn Header="Custom Data">
          <toolkit:DataGridTemplateColumn.CellEditingTemplate>
             <DataTemplate>
                  <ComboBox ItemsSource="{Binding ElementName=adminCombo, 
                    Path=SelectedValue.AvailableUDFs}"
                    SelectedValue="{Binding Field.Type}"
                    DisplayMemberPath="Name"/>
             </DataTemplate>
          </toolkit:DataGridTemplateColumn.CellEditingTemplate>
        </toolkit:DataGridTemplateColumn>
     </toolkit:DataGrid.Columns>
</toolkit:DataGrid>

También he intentado Fuente relativa - Encuentra antepasado y buscando el árbol al cuadro combinado anterior, pero fue en vano. Por extraño que parezca, poniendo el mismo cuadro combinado en la plantilla elementos de un ListView funciona bien, la lista correcta de artículos aparece depende del administrador seleccionado. El problema de usar un ListView WPF es que en última instancia quiero tener otras celdas editables en la misma fila, y un ListView llano no está diseñado para este fin.

¿Puede alguien ayudarme? Gracias Chris

¿Fue útil?

Solución

Puede utilizar un datagridcombocolumn, y conseguir la fuente de los elementos a que es un poco complicado, respondí cómo hacer esto aquí , disfrutar.

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