2

プロパティStateTriggerにバインドする簡単なものを作成しました。、およびFrameworkElement Widthの 3 つの依存関係プロパティがあります。それらのタイプは、したがってです。MinValueMaxValueElementdoubledoubleFrameworkElement

そして、バインディングの順序によっては、機能する場合と機能しない場合があることに気付きました。

これはうまくいきます。

<local:ElementWidthTrigger MaxValue="1000"
                           MinValue="800"
                           Element="{Binding ElementName=LayoutRoot}" />

そして、これはそうではありません。

<local:ElementWidthTrigger Element="{Binding ElementName=LayoutRoot}"
                           MaxValue="1000"
                           MinValue="800" />

この 2 つのサンプルの唯一の違いは、Elementプロパティ バインディングの順序であることに注意してください。

ElementWidthTrigger各依存関係プロパティのプロパティ変更コールバックがあります。そして、Element一番上にあるときは、コールバックが何があっても呼び出されません。

x:Bind使用されている順序に関係なくこの問題を解決しますが、疑問が残ります。Elementバインディングの順序に応じてプロパティがバインドに失敗する理由を説明できる人はいますか?

Windows 10 1803 ビルド 17134.320 で実行されています。

実際のサンプル プロジェクトは、ここにあります。

4

2 に答える 2