2010-03-29 12 views
7

Estoy utilizando el WPF Toolkit Datagrid y tengo una columna que es un DataGridCheckBoxColumn vinculado a una propiedad bool en mi ViewModel.DataGridCheckBoxColumn enlace inmediato

Mi problema es que no quiero que la propiedad obtenga su valor actualizado inmediatamente cuando el usuario marca o desmarca la casilla de verificación.

Ahora tiene que salir de la celda para actualizar la propiedad. Es una casilla de verificación. No puede estar en el medio de la edición como un cuadro de texto puede ...

Cualquier ayuda sería apreciada.

/J

Respuesta

21

usted tiene que establecer la propiedad UpdateSourceTrigger de la unión a PropertyChanged. El valor predeterminado es LostFocus.

+0

Esto funcionó para mí. Gracias. – alimbada

+0

Esto funcionó para mí (WPF4) también - quizás esto fue algo que cambió para .NET4 –

+0

Definitivamente funciona en una columna de plantilla –

9

La solución es NO utilizar el DataGridCheckBoxColumn para esto. En su lugar utilizar

<dg:DataGridTemplateColumn Width="20" Header="" SortMemberPath="IsSelected"> 
    <dg:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
     <CheckBox IsChecked="{Binding Path=IsSelected}" /> 
     </DataTemplate> 
    </dg:DataGridTemplateColumn.CellTemplate> 
</dg:DataGridTemplateColumn> 

que por defecto tiene su UpdateSourcerigger a PropertyChanged ...

DataGridCheckBoxColumn tiene su UpdateSourceTrigger establece en explícito y no se puede cambiar. Leer más aquí: http://blogs.msdn.com/vinsibal/archive/2009/04/07/5-random-gotchas-with-the-wpf-datagrid.aspx

+4

No, no es el predeterminado. Debe configurarlo manualmente, es decir, "UpdateSourceTrigger = PropertyChanged". De lo contrario, realizará cambios solo visualmente (VS2010). De todos modos, MUCHAS GRACIAS por la ayuda. – greenoldman

+0

nota: necesita hacer UpdateSourceTrigger incluso para un cuadro de texto dentro de un DataGrid. probablemente desee PropertyChanged = LostFocus en este caso (aunque este es el predeterminado) –

+1

Tuve que hacer esto cuando uso Silverlight 5 – Aducci

Cuestiones relacionadas