Pregunta: La mayoría de los ejemplos de código en el DataGridComboBox parecen utilizar un recurso estático como ItemsSource. En mi caso de uso, me gustaría proporcionar diferentes ItemsSources con cada objeto encuadernado. se puede hacer esto?Enlace de ItemsSource para una columna WPF DataGridComboBox
Antecedentes: Estoy tratando de obligar a una colección de objetos de la clase de preguntas a un DataGrid WPF, usando un control DataGridComboBoxColumn. La cadena de respuesta proporciona SelectedValue. Me gustaría que la lista AnswerDomain proporcione el ItemsSource para cada ComboBox. AnswerDomain difiere de Question to Question.
Clase
public class Question
{
string Answer {get; set;}
List<string> AnswerDomain {get; set;}
//...other stuff
}
XAML
<DataGrid ItemsSource="{Binding Path=InspectionItems}" AutoGenerateColumns="False" Name="dataGrid1" >
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Answer Domain"
DisplayMemberPath="Answer"
SelectedValuePath="Answer"
ItemsSource="{Binding Path=AnswerDomain}"
>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
Problema: Hay un par de problemas. El problema clave en este momento es que los ComboBoxes en cada fila DataGrid no muestran las cadenas AnswerDomain. Probé una serie de combinaciones XAML sin éxito. Ayudame Stack Overflow.
ACTUALIZACIÓN: La solución seleccionada a continuación funcionó. Después de algunas torpezas adicionales y al agregar UpdateSourceTrigger=PropertyChanged
al elemento seleccionado, los cambios del usuario en el cuadro combinado se reflejaron nuevamente en el objeto personalizado subyacente.
<DataGridTemplateColumn Header="Answer">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding AnswerDomain}"
SelectedItem="{Binding Answer, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Esta respuesta explica por qué no se puede obligar a una consolidación DataGridComboBoxColumn dinámico - http://stackoverflow.com/a/5411157/158675 – Edward