Principales respuestas
Mostrar campo booleano de forma distinta

Pregunta
-
Respuestas
-
Creo que hay un par de caminos. El más sencillo es: Agregue una propiedad tipo string de sólo lectura al objeto que devuelva "Masculino" o "Femenino" dependiendo del valor booleano.
Ejemplo: Asumo que usted tiene una colección de objetos de algún tipo de clase en particular (normalmente de una clase de la capa de negocio):
public class Persona { //Esta sería la propiedad booleana original: public bool Masculino { get; set; } //Esta sería la propiedad nueva de sólo lectura: public string Sexo { get { return Masculino ? "Masculino" : "Femenino"; } } ... }
Y pues entonces lo único que resta hacer es cambiar la columna de tipo Checkbox (para la columna booleana) por una te texto para esta propiedad de sólo lectura.
Jose R. MCP
Code Samples- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:34
-
hola
recuerda que para implementar lo que comenta jose deberias definir las columnas del datagridview en timepo de diseño
[DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn
como explico en la primer partedel articulo, sino lo haces asi y dejas que se creen sola las columans veras dos una del tipo bool y la otra con el string, cuando deberia ser uan unica
la clase podria ser
Public Class Persona Public Property Sexo() As Boolean Get Return m_sexo End Get Set m_sexo= Value End Set End Property Private m_sexo As Boolean Public ReadOnly Property SexoDescripcion() As String Get Return IIf(Me.Sexo, "Masculino", "Femenino") End Get End Property End Class
o sea tienes la propiedad Sexo pero esta no al defines como columna en el grid, la que si usas es SexoDescripcion que es la que vas a mostrarsaludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:35
-
hola
recuerda que para implementar lo que comenta jose deberias definir las columnas del datagridview en timepo de diseño
[DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn
como explico en la primer partedel articulo, sino lo haces asi y dejas que se creen sola las columans veras dos una del tipo bool y la otra con el string, cuando deberia ser uan unica
la clase podria ser
Public Class Persona Public Property Sexo() As Boolean Get Return m_sexo End Get Set m_sexo= Value End Set End Property Private m_sexo As Boolean Public ReadOnly Property SexoDescripcion() As String Get Return IIf(Me.Sexo, "Masculino", "Femenino") End Get End Property End Class
o sea tienes la propiedad Sexo pero esta no al defines como columna en el grid, la que si usas es SexoDescripcion que es la que vas a mostrarsaludos
Leandro Tuttini
Blog
Buenos Aires
ArgentinaBueno, hice lo siguiente; todas las columnas menos "Sexo" las muestro con un datatable y autogenero las columnas,
creé dentro del dataGridView una única columna denominada Columna1 pero con encabezado "Sexo", con esa columna muestro los datos "Measculino" y "femenino" según sea True o False la columna sexo de la base de datos y por último le puse un displayindex en el lugar donde quiero mostrar la columna. Gracias por la ayuda
- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:35
Todas las respuestas
-
Creo que hay un par de caminos. El más sencillo es: Agregue una propiedad tipo string de sólo lectura al objeto que devuelva "Masculino" o "Femenino" dependiendo del valor booleano.
Ejemplo: Asumo que usted tiene una colección de objetos de algún tipo de clase en particular (normalmente de una clase de la capa de negocio):
public class Persona { //Esta sería la propiedad booleana original: public bool Masculino { get; set; } //Esta sería la propiedad nueva de sólo lectura: public string Sexo { get { return Masculino ? "Masculino" : "Femenino"; } } ... }
Y pues entonces lo único que resta hacer es cambiar la columna de tipo Checkbox (para la columna booleana) por una te texto para esta propiedad de sólo lectura.
Jose R. MCP
Code Samples- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:34
-
-
Le recomiendo entonces el traductor en www.developerfusion.com para pasar de C# a VB.net porque yo no uso VB.net. Cualquier ejemplo que yo le dé será en C#.
Suerte con eso. Avísenos si le funciona bien.
Jose R. MCP
Code Samples -
hola, en realidad no divido en capas, solamente tengo las conusltas en módulos separados, pero decís que si creo 2 campos string, y luego si uno es falso se muestra un campo y si en true se muestra el otro?
porque quiero q se muestre en el datagridview
- Editado maxserv miércoles, 13 de junio de 2012 20:46
-
hola
recuerda que para implementar lo que comenta jose deberias definir las columnas del datagridview en timepo de diseño
[DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn
como explico en la primer partedel articulo, sino lo haces asi y dejas que se creen sola las columans veras dos una del tipo bool y la otra con el string, cuando deberia ser uan unica
la clase podria ser
Public Class Persona Public Property Sexo() As Boolean Get Return m_sexo End Get Set m_sexo= Value End Set End Property Private m_sexo As Boolean Public ReadOnly Property SexoDescripcion() As String Get Return IIf(Me.Sexo, "Masculino", "Femenino") End Get End Property End Class
o sea tienes la propiedad Sexo pero esta no al defines como columna en el grid, la que si usas es SexoDescripcion que es la que vas a mostrarsaludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:35
-
no hay otra forma?, es que tuve muchos problemas agregando los datos al dataGridView de esa forma, no se puede poner una mascara o algo asi?
igual gracias,
voy a intentar agregar una columna "Sexo" aparte, y que muestre los datos con esa clase
- Editado maxserv jueves, 14 de junio de 2012 2:37
-
hola
recuerda que para implementar lo que comenta jose deberias definir las columnas del datagridview en timepo de diseño
[DataGridView] – Parte 4 - Uso del DataGridViewComboBoxColumn
como explico en la primer partedel articulo, sino lo haces asi y dejas que se creen sola las columans veras dos una del tipo bool y la otra con el string, cuando deberia ser uan unica
la clase podria ser
Public Class Persona Public Property Sexo() As Boolean Get Return m_sexo End Get Set m_sexo= Value End Set End Property Private m_sexo As Boolean Public ReadOnly Property SexoDescripcion() As String Get Return IIf(Me.Sexo, "Masculino", "Femenino") End Get End Property End Class
o sea tienes la propiedad Sexo pero esta no al defines como columna en el grid, la que si usas es SexoDescripcion que es la que vas a mostrarsaludos
Leandro Tuttini
Blog
Buenos Aires
ArgentinaBueno, hice lo siguiente; todas las columnas menos "Sexo" las muestro con un datatable y autogenero las columnas,
creé dentro del dataGridView una única columna denominada Columna1 pero con encabezado "Sexo", con esa columna muestro los datos "Measculino" y "femenino" según sea True o False la columna sexo de la base de datos y por último le puse un displayindex en el lugar donde quiero mostrar la columna. Gracias por la ayuda
- Marcado como respuesta maxserv jueves, 14 de junio de 2012 3:35