1

嗨,我知道这听起来可能有点傻,但我想在数据库中包含“Y”、“N”或空白值的字段上使用 DataGridViewCheckBoxColumn。我希望检查 Y 值并取消选中其他所有内容。

顺便说一句,我正在使用 VB.NET,对此的任何帮助将不胜感激。同样在任何人问不之前,我不能将数据库字段更改为布尔值,我必须按原样滚动。

4

3 回答 3

1

你可以使用一个IValueConverter,像这样:

 public class YesNoToBooleanConverter : IValueConverter
 {

     public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     {

        return ((value as string).Equals("Y")) ? true : false;
     }

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     {
        return value;
     }
 }

在使用转换器绑定时,如果您使用的是 wpf,这就是您绑定它的方式。

这只是一个例子:

  1. xmlns:local="clr-namespace:project.converter"

在资源下:

  1. <Grid.Resources> <local:YesNoToBooleanConverter x:Key="YesNoToBooleanConverter" /> </Grid.Resources>

在你的专栏

  1. DataMemberBinding="{Binding Active, Converter={StaticResource YesNoToBooleanConverter}}"
于 2014-08-25T13:25:40.723 回答
0

像这样试试

得到查询的输出是boolean这样的

select case when column1="Y" then true else false end as column from table1

之后data source分配datagridview

于 2014-08-25T13:54:14.477 回答
0

正如我在回答您之前的一个问题时在评论中所说:我很确定我以前做过。好吧,猜猜是什么,我有,解决方案非常简单。

DataGridViewCheckBoxColumn类有两个属性可以帮助您。

  • FalseValue:获取或设置对应于单元格值为 true 的基础值,该单元格值显示为复选框。

  • TrueValue:获取或设置对应于单元格值为 false 的基础值,该单元格值显示为未选中的框。

With Me.MyDataGridViewCheckBoxColumnInstance
    .FalseValue = "N"
    .TrueValue = "Y"
    .DataPropertyName = "MyYesNoDataColumnName"
End With
于 2014-08-25T15:09:04.573 回答