コントロールに定義されたバインディング情報を取得する方法。
MSDNのBindingの説明(URL)
のサンプルを参考に
private void textBox1_Validating(object sender, CancelEventArgs e) { Control c = (Control)sender; foreach (Binding thisBinding in c.DataBindings) { // Print the control's name and Binding information. Console.WriteLine("\n" + c.ToString()); BindingMemberInfo bInfo = thisBinding.BindingMemberInfo; Console.WriteLine("Binding Path \t" + bInfo.BindingPath); Console.WriteLine("Binding Field \t" + bInfo.BindingField); Console.WriteLine("Binding Member \t" + bInfo.BindingMember); } }
でバインディングしている列の名前が取得できた。
これで、列名を判断して妥当性チェックができる。
(追記)
このやり方は、コントロール毎に設定が必要で面倒なので却下。