2014年09月02日

Bindの順番

WPFでしか確認していなのでカテゴリはWPFですがXAMLのお話。
いつも以上に裏を取っていないのではじめにあやまっておきます、ごめんなさい。
あとコードの埋め込みも面倒なのでスクリーンショットです。最後にプロジェクト一式置いておきます。ごめんなさい。

一つのコントロールの複数のプロパティにデータバインドしている時、どのプロパティからバインドされていくのか、が気になりました。

ということで、DependencyPropertyを二つ持つユーザーコントロールをつくって
Binding1.PNG
Binding2.PNG
プロパティを表示。


データクラスはプロパティが参照された順番を返すようにしておきます。
Binding3.PNG


あとはこんな感じで表示。
Binding4.PNG

リストボックスで選択したデータを表示するようにして、
Row="1"のユーザーコントロールは、Property1=〜,Property2=〜の順に記述。
Row="2"のユーザーコントロールは、Property2=〜,Property1=〜の順に記述。

これを実行すると
Binding5.PNG

こうなります。
もうちょっと見やすく作ればよかったんですが、Row="1"のユーザーコントロールの場合はProperty1,Property2の順にデータのプロパティを参照していますが、Row=”2"のユーザーコントロールはProperty2,Property1の順に参照しています。


ちなみに
Binding6.PNG

こんな感じにRow=”2”を先に書いておくと
Binding7.PNG

Row=”2”のユーザーコントロールからデータのプロパティを参照します。



結論
XAMLに書いた順でプロパティに設定していく(多分)

少し検索してみましたが該当するような説明は私には見つけられなかったので"多分"です。


あまりこういう機会はないと思いますが、SliderのValueとMaximumを両方バインドしたらValueが変わっちゃった、なんてこともあるかもないかも。


プロジェクトはこちら
BindingTest.zip
posted by ぷにお at 13:07 | Comment(0) | TrackBack(0) | WPF | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。