2009-07-22 25 views
1

内部でBindingListを使用してカスタムグリッドに表示されているアカウントオブジェクトを追跡するカスタムコントロールを作成しました。私はDependencyPropertyを自分のコントロールに追加して、コントロールとデータモデルの間のTwoWayバインディングを可能にするListのset/getを公開します。そのリストを設定してコントロールを初期化し、BindingListの更新による更新を取得したいと考えています。要するに、私のコントロールが最初にデータソースからバインドされているか、データソースがコントロールのBindingListの変更に基づいて更新されているかによって、DependencyPropertyのリストと内部のBindingListの間の変換を何らかの形で提供する必要があります。カスタムコントロールと依存関係プロパティ

Webで見つかった例では、DependencyPropertiesで設定されたリストを直接操作するコントロールを扱っています。私の場合、BindingListは必然的にDependencyPropertyのリストと同じレベルではないため、

+0

あなたは私たちに例を挙げることができますか? –

答えて

0

どうしてBindingListが同じではないのですか?それはC#の仕組みではありません:

myControl1.List = list1; 

上記の定義の意味は、プロパティから値に設定され、設定後も同じであると考えられます。

一般的なプレーンC#クラスのセッターで面白いロジックを作成することはできますが、DependencyPropertyはあらかじめ定義されたコンセプトであるため、健全性から逸脱することはできません。

0

内部で使用しているBindingListは、内部実装を外部プロパティに公開しないため、公開しようとしているDependencyPropertyのリストと同じではありません。

複雑なコントロールでは、データを保持する独自のBindingListsを持つ必要がある複数のグリッドなどがあります。私のDependencyPropertyは、次の目的で使用されます。 1)いくつかのデータでカスタムコントロールを初期化します。 2)ユーザー入力に基づいて新しいリストをモデルに戻します。

関連する問題