ColumnValueConverter クラス |
名前空間: C1.WPF.FlexGrid
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;