Подтвердить что ты не робот

Каково использование Path = в XAML?

Я использую много привязок в XAML, и иногда я использую path = в привязке, а иногда и нет. В каких случаях мне нужен путь = и когда я могу опустить это?

4b9b3361

Ответ 1

Он всегда может быть опущен, поскольку это свойство по умолчанию расширения Binding XAML. Он явно указывается явно для ясности при использовании нескольких свойств.

Ответ 2

Это связано с тем, что класс Binding имеет конструктор по умолчанию, используемый, когда у вас есть привязки типа {Binding FallbackValue='HelloWorld', Path=MyProperty} и конструктор с единственным аргументом Path.

Итак, когда есть список пар свойств/значений, привязка создается как

new Binding(){
  Path="MyProperty"
  ElementName="MyElement"
}

Вторая форма используется для привязок типа {Binding MyProperty, ...}. В этом случае привязка создается как

new Binding("MyProperty"){
  ElementName = "MyElement",
  ...
}

Он всегда корректен (и, возможно, более прав), чтобы указать Path =, но вы можете обойтись без него.

Ответ 3

Путь используется для указания имени свойства базового объекта для привязки.

Когда вы привязываетесь к DataContext, вы можете опустить Path:

{Binding MyProperty}    

{Binding Path=MyProperty}

Когда вам нужно указать источник, отличный от DataContext, вы можете использовать Source, RelativeSource или ElementName для обращения к объекту, поэтому вам обычно нужно указать, к какому свойству его вы хотите установите привязку:

<Button Background="{Binding ElementName=refButton, Path=Background}"/>

<TextBlock Width="{Binding RelativeSource={RelativeSource Self}, Path=Parent.ActualWidth}"/>

Ответ 4

Вы всегда можете опустить Path = при написании пути к свойству непосредственно позади инструкции Binding.

{Binding MyProperty}

совпадает с

{Binding Path=MyProperty}

Когда вы встраиваете путь к свойству, вам нужно указать его с помощью Path =

{Binding FallbackValue='HelloWorld', Path=MyProperty}

Ответ 5

Как сказал Ричард Салай, это необязательно, если это первое свойство. Но, по моему описанию, его легче читать, если вы введете свойство path. Также улучшается выделение кода.