Я создал простой StateTrigger
для привязки к свойству FrameworkElement
Width
.Существует три свойства зависимостей: MinValue
, MaxValue
и Element
.Это типы double
, double
и FrameworkElement
соответственно.
И я заметил, что в зависимости от порядка привязки это может работать или не работать.
Это прекрасно работает.
<local:ElementWidthTrigger MaxValue="1000"
MinValue="800"
Element="{Binding ElementName=LayoutRoot}" />
И это не так.
<local:ElementWidthTrigger Element="{Binding ElementName=LayoutRoot}"
MaxValue="1000"
MinValue="800" />
Заметил, что единственная разница в этих двух примерах - Element
порядок привязки свойства.
В ElementWidthTrigger
свойство измененообратный вызов для каждого свойства зависимости.И когда Element
на самом верху, то обратный вызов никогда не вызывается, несмотря ни на что.
x:Bind
решает эту проблему независимо от того, какой порядок используется, но вопрос остается.Кто-нибудь может объяснить, почему свойство Element
не может быть привязано в зависимости от порядка привязки?
Работает в Windows 10 1803 build 17134.320.
Рабочий пример проекта можно найти здесь .