データバインディング

テキストボックスにデータバインディング設定する方法

Student student = new Student();
textBox1.DataBindings.Add("Text", student, "Name");
textBox2.DataBindings.Add("Text", student, "Title");

ただし、データクラスには以下のようにプロパティ変更通知を実装する必要があります。

   class Student : NofityPropertyChanged {
        int id;
        string name;
        string title;
        public string Title {
            get { return title; }
            set { 
                title = value;
                NotifyPropertyChanged("Title");
            
            }
        }
        public string Name {
            get { return name; }
            set { 
                name = value;
                NotifyPropertyChanged("Name");
            }
        }
    }
    public class NofityPropertyChanged : INotifyPropertyChanged {
        public event PropertyChangedEventHandler PropertyChanged;
        protected void NotifyPropertyChanged(String info) {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }

リストボックスにデータバインディング設定する方法

まず、BindingSourceコントロールをフォームのデザイン画面でフォームに貼り付けてください。あとの手順としては、

    • リストボックスのDataSourceにBindingSourceコントロールを割り当てる
    • BindingSourceコントロールの DataSourceとして、データクラス(下記の場合はArrayList)を割り当てる

となります。割り当てた後は、BindingSourceに対して操作をしてください。そうすることで、元のArrayListの中身も反映されます。

listBox1.DataSource = bindingSource1;
          ArrayList data = new ArrayList();
           data.Add("A");
          data.Add("B");
            bindingSource1.DataSource = data;
            //追加する場合
            bindingSource1.Add("aaaaa");