14

XAMLバインディングのFindAncestorの「新しい方法」が何であるかを知っている人はいますか? RelativeSourceMode ( http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.data.relativesourcemode ) を見ると、self または TemplatedParent を参照するためのオプションしか残っていません。FindAncestor はなくなりました。FindAncestor を使用して修正した問題の一般的な解決策とその理由を知りたいです。

宜しくお願いします

4

2 に答える 2

14

なぜそれが欠けているのですか?わかりませんが、「Microsoftにはすべての機能を時間内に実装するのに十分な時間がなかった」以外の説明があるのではないかと思います。

簡単な回避策は、次のように、代わりにElementNameを使用することです。

Binding={ ElementName=TheNameOfTheAncesor, Path=DataContext.TheViewModelProperyIWantToBindTo }

そして、FindAncestorバインディングが指すようにしたい祖先にx:Name属性を追加するには:

<TextBlock x:Name="TheNameOfTheAncestor" />
于 2013-02-25T09:34:01.483 に答える
4

この不足に対する一般的な解決策はありません。たとえば、ListViewItemプロパティにアクセスできないDataTemplateため、選択の変更にエレガントに反応できません。追加されるまで、特定のケースごとに回避策を見つける必要がありますFindAncestor(この欠席が時間の不足だけではないとは信じられません)。

于 2013-02-25T10:40:30.023 に答える