C# Windows フォーム プロジェクトでのデータ バインディングに関する問題に直面しています。.Net Framework 4 クライアント プロファイルを使用しました。IDE は C# 用の Visual Studio 2010 Express Edition です。私は以下のようなクラスを持っています。
public myClass()
{
name = string.Empty;
dataType = DataTypes.Bool; //property with enum created by me
isList = false;
filterValue = new object();
}
次に、profile.csv ファイルがあります。私のフォームの1つにコンボボックスがあり、そのデータソースはcsvファイルからのデータを含むデータテーブルです。
private void form_load()
{
ComboBox comboBox = new ComboBox();
this.Controls.Add(comboBox);
comboBox.Name = attribute.Name.Replace(" ", string.Empty);
comboBox.DisplayMember = attribute.Name;
comboBox.DataSource = attributeValueDataSource.Tables[tableName].DefaultView;
comboBox.SelectedIndex = 0;
}
次に、このコンボ ボックスで自分のクラスにデータ バインディングを行います。私のデータバインディングは上記とは異なる別の方法であり、コンボボックスは動的に作成されるため、以下の方法でその名前でコンボボックスを見つけました。
private void Method_1
{
control = this.Controls.Find(attrName, true);
ComboBox specificControl = (ComboBox)control[0]; Binding attributeBinding =
new Binding(SelectedValue, attributeSelectionController.FilterAttributeModels[attributeCount] , FilterValue, true, DataSourceUpdateMode.OnPropertyChanged, string.Empty, F);
attributeBinding.ControlUpdateMode = ControlUpdateMode.OnPropertyChanged; specificControl.DataBindings.Add(attributeBinding);
}
その状態までは大丈夫そうです。ただし、バインド イベント呼び出しとプログラム フローが set プロパティ メソッドに進むと、value.GetType() は、文字列、整数、またはその他のデータ型ではなく、コンボ ボックス項目の selectedValue の型として system.data.datarowview を返します。データソースをそれに設定しているときに、コンボックスの値メンバーを設定しようとしました。しかし、助けはありません。誰でもそれを助けることができますか?緊急の解決策が必要です。