データマップされた列には、実際の値ではなく、キーが含まれます。たとえば、列の内容は国の 都道府県コード を表す整数であっても、対応する国名をユーザーが表示および編集できるようにします。
このシナリオでは、2行を超えるコードが必要になります。
C# |
コードのコピー
|
---|---|
// IDsの代わりに国名を表示するようにCountryID列をマップします Dictionary<int, string> dct = new Dictionary<int, string>(); foreach (var country in Customer.GetCountries()) { dct[dct.Count] = country; } col = _flexEdit.Columns["CountryID"]; col.ValueConverter = new ColumnValueConverter(dct); col.HorizontalAlignment = HorizontalAlignment.Left; col.Width = new GridLength(120) |
このコードは、最初に、国の 都道府県コード 値(整数)を国名(文字列)にマップする辞書を構築します。
次に、その辞書を使用して ColumnValueConverter を構築し、前の例と同様に、そのコンバータを列の ValueConverter プロパティに割り当てます。
ユーザーは、辞書に存在するすべての国を選択でき、マップされていない値を入力できなくなります。
最後に、このコードは、列の配置を左揃えに設定します。この列の実際の内容は整数値なので、デフォルトでは右揃えで配置されます。ここでは、名前を表示するため、左揃えに設定します。