クリックまたはドラッグしてリサイズ
ColumnValueConverter クラス
列の有効なエントリのリストを定義します。
継承階層
SystemObject
  C1.WPF.FlexGridColumnValueConverter

名前空間: C1.WPF.FlexGrid
アセンブリ: C1.WPF.FlexGrid.4 (C1.WPF.FlexGrid.4.dll 内) バージョン: 4.0.20161.507 (4.0.20161.507)
構文
public class ColumnValueConverter : IValueConverter, 
	IEditValueConverter

ColumnValueConverter 型で公開されるメンバーは次の通りです。

コンストラクタ
  名前説明
パブリック メソッドColumnValueConverter
ColumnValueConverter の新しいインスタンスを初期化します。
パブリック メソッドColumnValueConverter(IDictionary)
辞書に基づいて ColumnValueConverter の新しいインスタンスを初期化します。
パブリック メソッドColumnValueConverter(ICollection, Boolean)
単純な値リストに基づいて ColumnValueConverter の新しいインスタンスを初期化します。
パブリック メソッドColumnValueConverter(IEnumerable, String, String)
オブジェクトコレクションに基づいて ColumnValueConverter の新しいインスタンスを初期化します。
このページのトップへ
プロパティ
  名前説明
パブリック プロパティExclusive
エディタが Values リストに含まれる値のみを許可するかどうかを判定する値を取得します。
パブリック プロパティValues
エディタによって表示される値のコレクションを取得します。
このページのトップへ
メソッド
  名前説明
パブリック メソッドConvert
データ値を表示値に変換します。
パブリック メソッドConvertBack
表示値をデータ値に逆変換します。
パブリック メソッドSetSource(IDictionary)
キー(列のセルに格納されるオブジェクト)とそれに対応する表示値(ユーザーに表示される文字列)が含まれる辞書をコンバータソースとして設定します。
パブリック メソッドSetSource(ICollection, Boolean)
セルに保存する値のリストをコンバータソースに設定します。
パブリック メソッドSetSource(IEnumerable, String, String)
キー(列のセルに保存された値)とそれらに対応する表示値が入ったオブジェクトのリストをコンバータソースに設定します。
このページのトップへ
解説

このクラスは、一般的な3つの結合シナリオを処理します。

1) いくつかの特定の値のみを受け入れることができる列。たとえば、文字列型の "Country" 列と国名のリストがあるとします。ユーザーはリストから国を選択しなければならず、リストにない国は入力できないようにすることができます。以下のコードはこのシナリオの処理方法を示します。

// 列を取得します
var c = _flexEdit.Columns["Country"];

// コンバータを作成し、それに排他的な値リストを割り当てます
c.ValueConverter = new ColumnValueConverter(GetCountryNames(), true);

2) いくつかの一般的な値を含み、それ以外の値も受け入れる列。たとえば、文字列型の "Country" 列がある場合に、ユーザーが簡単に選択できるように一般的な国名のリストを提供することにします。ただし、この場合は、ユーザーがリストにない値も入力できるようにします。以下のコードはこのシナリオの処理方法を示します。

// 列を取得します
var c = _flexEdit.Columns["Country"];

// コンバータを作成し、それに非排他的な値リストを割り当てます
c.ValueConverter = new ColumnValueConverter(GetCountryNames(), false);

3) 実際の値ではなく、キーが含まれる列。たとえば、列の内容は国の ID を表す整数であっても、対応する国名をユーザーが表示および編集できるようにします。以下のコードはこのシナリオの処理方法を示します。

// キーと値の辞書を構築します
var dct = new Dictionary<int, string>();
foreach (var country in GetCountryNames())
{
dct[dct.Count] = country;
}

// 列を取得します
var c = _flexEdit.Columns["CountryID"];

// コンバータを作成し、それに値の辞書を割り当てます
c.ValueConverter = new ColumnValueConverter(dct);

// 列を左揃えにします
c.HorizontalAlignment = HorizontalAlignment.Left;
参照