ListControl(ListBox, ComboBox)に表示するデータソースを設定する方法

  ListControl(ListBox, ComboBox) に表示するデータソースを設定するには、コントロールの 「DataSource, DisplayMember, ValueMember」プロパティにそれぞれ必要な情報を設定します。
  ListBox, ComboBox に表示するデータソースを Items に追加登録することなく、データソースに接続する方法を用いることで、データソースの更新にダイナミックに連動して表示内容を更新します。
【使い方】
  // ctrl は Control
  // source は連結するデータソースオブジェクト
  // displayField は表示するデータのプロパティ名
  // valueField は値のデータのプロパティ名

  // 連結対象のプロパティ名を設定します。
  if ( displayField != null )
      ctrl.DisplayMember = displayField;
  if ( valueField != null )
      ctrl.ValueMember = valueField;

  // データソースを連結します。
 ctrl.DataSource = source;

  // 補足
  // 同一データソースを複数のコントロールに連結する場合で、独立して操作したい場合
  // データソースの複製生成を生成&設定する
  if ( source is ICloneable )
        ctrl.DataSource = ((ICloneable)source).Clone();
【注意】
 ListControl(ListBox, ComboBox) の表示データにデータソースを設定した場合、データソースの更新にダイナミックに連動するメリットはありますが、同じデータソースを別のコントロールで利用した場合、管理する CurrencyManager は共通になり、データのカレント位置が連動して変化するデメリットがあります。
 この場合の回避策は、データソースの複製(Clone)を生成して連動する方法があります。
戻る