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

Когда использовать Path в привязке WPF?

Я видел много примеров привязки WPF и использовал эту функцию во многих разных местах при изучении MVVM, но то, что казалось мне совершенно непоследовательным, - это когда вы указываете "Path =" в строке привязки как просто введите текст в свойство, к которому вы хотите привязать. Например, какая функциональная разница между следующими атрибутами XAML:

DataMemberBinding="{Binding SomeProperty}"
DataMemberBinding="{Binding Path=SomeProperty}"
4b9b3361

Ответ 1

Функциональной разницы нет. Свойством по умолчанию объекта Binding является Path, это означает, что если вы не укажете, какое свойство вы устанавливаете, вы установите Path.

Это связано с тем, что объект Binding имеет два конструктора, по умолчанию и один, который принимает один строковый параметр. Когда вы передаете значение без маркировки, это свойство будет перенаправлено на соответствующий конструктор, в случае Binding это устанавливает путь. Это очень похоже на концепцию того, как работают атрибуты, вызов конструктора, за которым следуют необязательные параметры, например:

[AttributeUsage(AttributeTargets.Class), AllowMultiple = false, Inherited = false ]

Вероятно, путь, на который вы действительно задаете вопрос, но я заметил, что между ними есть небольшая (и, вероятно, несущественная) разница. Поскольку я не могу объяснить это сам, я начал новый вопрос об этом здесь.