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

以前の質問の 1 つに答えるときにコメントで述べたように、以前にそれを行ったことがあると確信しています。まあ、私が持っていたものだと思いますが、解決策は非常に簡単です。

DataGridViewCheckBoxColumnクラスには、役立つ 2 つのプロパティがあります。

  • FalseValue : チェック ボックスとして表示される true のセル値に対応する基になる値を取得または設定します。

  • TrueValue : チェックされていないボックスとして表示される false のセル値に対応する基になる値を取得または設定します。

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