2009-06-16 4 views
1

SubSonic 2.1で生成されたDALオブジェクトをWinForm(VB.NET VS2005)にバインドしようとしています。 IPropertyNotifyChanged実装の欠如を回避するために、バインドする各コントロールのcontrolname.DataBindings.Add()の前に、私のバインディングメソッドでcontrolname.DataBindings.Clear()を実行しています。チェックボックス問題WinForms CheckBoxをSubSonicにバインドするDALブール

chkObsolete.DataBindings.Add(New Binding("Checked", ioBLL.ioDAL, namespace.Country.Schema.Columns.GetColumn("Obsolete").ToString, True, DataSourceUpdateMode.OnPropertyChanged)) 
に結合したときに

txtCountryName.DataBindings.Add(New Binding("Text", ioBLL.ioDAL, namespace.Country.Schema.Columns.GetColumn("CountryName").ToString, True, DataSourceUpdateMode.OnPropertyChanged)) 

しかし:

テキストボックスには、このようなコードで正常に動作(ioBLLは私のBLLオブジェクトへの参照である、とioDALその中DALプロパティに)

実行時に基になるプロパティ値がTrueの場合は、これは決して表示されません。

なぜでしょうか?

答えて

1

ioBLL.ioDAL.Obsoleteはブール値ですか?

私は問題なく非常に似たコードを使用します。

おそらく唯一の違いは、私がBindingSourceを使用していることです。

IEフォームにバインディングソースを使用し、データソースをioBLLに設定します。

Iveには、コントロールを自分のエンティティに直接バインドする他の問題がありましたが、あなたがその問題の1つであることを思い出してください。

+0

ご意見ありがとうございます。はい、ブール値です。 私はこれを書いて以来、これはSubSonicのインスタンスがVB.NETとC#の両方で動作していないのかどうか疑問に思ったので、C#DALで新しいソリューションを作成しました。これは正常に動作したので、VB.NETでDALを再作成しました。私の元のフォームまたはBLLで何かが間違っていると思わなければなりません。 BindingSourceの使用に関するご意見に興味があります。 BLLにすべてのプロパティを作成してDALから入力するか、DALプロパティにまっすぐにバインドしますか? – kevinw

+0

私のGUIはBLLメソッドを呼び出してフェッチしたり保存したりします。BLLはMapperメソッドを呼び出し、Subsonic DALへの呼び出しを使用して自分のエンティティタイプを設定します。私のGUIは、Subsonic DALの何も知らず、自分のエンティティタイプとときどきDataTablesだけを処理します。このようなもの: GUI.bsCustomer.DataSource = BLL.CustomerBO.Fetch(新規CustomerQuery()。CustomerId.IsEqualTo(1001)) – Zapatta

+0

ありがとうございます。 私が正しく理解していれば、私のBLL.DAL.FieldNameへの移植方法ではなく、BLL.FieldNameにバインドしています(各フィールドのプロパティをBLLレベルとDALレベルで保持しています)。 – kevinw

関連する問題