2016-07-04 4 views
0

私はカスタム詳細を表示するフォームを持っています.1つは顧客に関連付けられた銀行口座のリストです。このリストは、それ自身のBindingSourceにバインドされたので、私は顧客をロードするときにされていますBindingsourceはバインディングを中断していません

bsCustomer.DataSource = customer; 
bsCustomerAccounts.DataSource = customer.Accounts; 

私はbsCustomerAccountsにバインドされているObjectListViewを持っています。これまでのところすべて正常に動作します。ユーザーはこのフォームでアカウントの編集をキャンセルするCancelをクリックしたときに問題がある

using (var form = new CustomerAccountForm(selectedAccount)) 
{ 
    DialogResult result = form.ShowDialog(this); 
    if (result == DialogResult.OK) 
    { 
     selectedAccount= form.Account; 
    } 
} 

特定のアカウントを編集するには、私はそれをダブルクリックして、別のフォームを開きます。元のbcCustomerAccountsであり、したがってリストはまだ更新されています。

私はSuspendBindingRaiseListChangedEvents = falseを試しましたが、バインディングソースはまだ更新されています。

何か不足していますか?

答えて

0

最初は、編集したオブジェクトをリストに戻していないのに、なぜリストアイテムが編集されたと思いますか?

重要なポイントは次のとおりです。クラスはReference Typeです。

選択したアカウントを編集フォームに渡しました。これはクラスであり、クラスは参照タイプなので、実際にはリストにある同じインスタンスを編集しています。したがって、プロパティを編集すると、OKまたはCancelをクリックしなくても、すべての編集内容がオブジェクトに直接適用されます。

関連する問題