Entiendo que puede hacer que todo el DataGrid o una columna completa estén listos solo (IsReadOnly = true). Sin embargo, a nivel celular esta propiedad solo está lista. Pero sí necesito este nivel de granularidad. Hay un blog sobre cómo agregar IsReadOnly a una fila cambiando el código fuente en días pasados cuando DataGrid era de dominio público, pero ahora no tengo el código fuente de DataGrid. ¿Qué es la solución?¿Cómo hacer WPF DataGridCell ReadOnly?
Haciendo que la celda esté deshabilitada (IsEnabled = false) casi satisface mis necesidades. Pero el problema es que ni siquiera puede hacer clic en la celda deshabilitada para seleccionar la fila (tengo el modo de selección de fila completa).
EDIT: Dado que nadie ha respondido a esta pregunta, supongo que no es una solución fácil. Aquí hay una posible solución alternativa: hacer que la celda no sea editable. El único problema es que al hacer clic en la celda no se selecciona la fila. Me acabo de dar cuenta de que el evento MouseDown o MouseUp del DataGrid todavía se activa cuando se hace clic en la celda deshabilitada. En este controlador de eventos, si pudiera averiguar la fila en la que hizo clic, podría seleccionar la fila mediante programación. Sin embargo, no pude encontrar la manera de encontrar la fila subyacente en DataGrid.InputHitTest
. ¿Puede alguien darme algún consejo?
Recle, esto fue en realidad lo que yo también inventé. Lo único que echo de menos es que, en general, me gustaría mostrar celdas de solo lectura en un color diferente. Entonces, estoy aceptando el tuyo. Espero que Microsoft pueda presentar esta propiedad de nivel celular en la próxima versión. – newman
@Recle ¿cuál es su tipo de datos fuente para el enlace de la red?En caso de que esté utilizando datatable para llenar el tipo de DataView como DataGrid ItemSource y luego desee acceder al objeto en el nivel de valor en DataTable, que tiene las propiedades IsEditable y MyCellValue, ¿cómo se verá su solución? Gracias – stenly
@Recle En mi caso tengo la colección de fuentes de cuadrícula y las cuadrículas se rellenan dinámicamente en función de la fuente (en ScrollViewer - dentro de la propiedad DataTemplate). Gracias por su asesoramiento – stenly