2012-05-08 18 views
1

可能性の重複:
WPF: Display a bool value as “Yes”/“No”DataGridでは、booleanをチェックボックスの代わりに「yes/no」とするにはどうすればよいですか?

私はVB.Net 2010(.NET 4.0)でWPFのプログラムを書いているののObservableCollectionです単純なクラスに対して、データバインディングを使用しています私が書いた別の簡単なクラス。これまでのところ、情報を表示するDataGridがあり、必要に応じてアイテムを追加したり削除したりすることができますが、かなり基本的なコンセプトでつまずいています。

デフォルトのビヘイビアさまざまなDataGrid列が可能ですか?

私は元のクラスに "reversed"と呼ばれるブール値を持っています。これを "x"とします。 "DataGridCheckBoxColumn"がチェックされているかチェックされていないチェックボックスの代わりに、 "x"のObservableCollectionが "Yes"または "No"と表示されるようにDataGridを設定します。

これを行うには良い方法がありますか、私は自分の時間を無駄にしていますか?ありがとう!あなたはDataViewのかのDataGridViewにバインドされ、あなたのオブジェクトのコレクションを持っている場合は

答えて

3
[ValueConversion(typeof(bool), typeof(string))] 
public class FlopBoolean : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (bool)value return "yes"; 
     return "no"; 
    } 
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 

     return true; 
    } 
} 
+0

ありがとうございます、これは私の仕事です。私はCSを使用していないので、VBでこれを書くにはちょっと考えなければなりませんでした。あなたの最初の行に相当するものは見つかりませんでしたが、コンバーターの実装タイプを指定しますが、それにもかかわらず、それは仕事をします。 – evilspoons

+0

その最初の行は間違っている可能性があり、それでも問題はないと思っています。 – Paparazzi

+0

私は最初の行の最初の行が、開発環境の "将来のバージョン"の追加データとして変換タイプを指定していて、まったく使用されていないことを少し後に読んでいます。 – evilspoons

0

、あなたはプロパティを作成し、データグリッドでそのプロパティを表示することができます。例:

Public Class Example 
    <Browsable(False)> Public Property isLinked As Boolean 

    <DisplayName("Linked")> Public ReadOnly Property LinkedDisplay As String 
     Get 
      If isLinked Then 
       Return "Yes" 
      Else 
       Return "No" 
      End If 
     End Get 
    End Property 
End Class 

この欠点は、この列をデータグリッドビューで編集できないことです。

+0

これも私のために働いた(私も@Blamの答えを試した)。このバージョンは実装するのが簡単ですが、思ったように、基本的なデータ構造を変更して表示方法を変更する必要があるため、あまり洗練されていないようです。助けてくれてありがとう! – evilspoons

+0

部分的に同意します。その点では少し面倒ですが、結果を表示/書式設定するための追加コードを書く必要がないので、コードの他の部分をきれいにします。 – pkoszka

関連する問題