Cuando hago clic en una celda en mi DataGridComboBoxColumn, el ComboBox se vuelve visible y puedo seleccionar elementos. Cuando selecciono un elemento, es visible en la parte superior, eso está bien. Pero cuando la célula también conocida como ComboBox pierde su foco porque hago clic en algo diferente en el DataGrid, ya no hay ningún elemento/texto visible en la celda que he seleccionado previamente.DataGridComboBoxColumn pierde su contenido cuando la selección cambia
¿Cómo puedo mantener esa selección/texto seleccionado?
esa es mi código:
<DataGridComboBoxColumn
Width="*"
Header="Monday"
DisplayMemberPath="SchoolclassName"
SelectedValueBinding="{Binding SchoolclassCodeMonday}"
ItemsSource="{Binding Source={StaticResource ClassCodes}}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
<Setter Property="IsDropDownOpen" Value="True" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
parece que hay una solución para mi problema: http://wpf.codeplex.com/Thread/View.aspx?ThreadId=46627 (desplazamiento hacia la parte inferior), pero no puedo transferir la solución a mi problema. Porque la configuración de mi modelo es bastante diferente.
SchoolclassName es una propiedad de cadena en Schoolclass.cs SchoolclassCodeMonday es una propiedad de cadena en TimeTable.cs ClassCodes aka SchoolclassCodes es una propiedad de tipo ObservableCollection | schoolclass |
¿Alguien sabe cómo arreglar mi encuadernación?
@Al tipo que votó 1 DisplayMemberPath = "SchoolclassName" lo anterior fue el código existente: el siguiente he añadido y ahora el SchoolclassCode permanece en la celda cuando salga del cuadro combinado. Normalmente utilizas una identificación para el SelectedValuePath pero mi "ID" es el SchoolclassCode que ya es único. SelectedValuePath = "SchoolclassName" Simplemente funciona para mí ..., no tengo una mejor explicación o conocimiento de información privilegiada más técnico, pero se puede leer aquí que me ayudó un poco: http: //blogs.msdn .com/b/vinsibal/archive/2008/10/31/wpf-datagrid-datagridcomboboxcolumn-v1-intro.aspx – msfanboy