Когда использовать Path в WPF Binding? - PullRequest
37 голосов
/ 17 августа 2010

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

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

1 Ответ

43 голосов
/ 17 августа 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...