Я видел много примеров связывания WPF и использовал эту возможность во многих различных местах при изучении MVVM, но кое-что мне показалось довольно противоречивым, когда вы указываете «Path =» в строке привязки, как при простом вводе свойства, с которым вы хотите связать. Например, в чем функциональная разница между следующими атрибутами XAML:
DataMemberBinding="{Binding SomeProperty}"
DataMemberBinding="{Binding Path=SomeProperty}"
Функциональной разницы нет. Свойством по умолчанию объекта Binding является Path, это означает, что если вы не укажете, какое свойство вы устанавливаете, то вы установите Path.
Это происходит потому, что у объекта Binding есть два конструктора, один по умолчанию, а другой принимает один строковый параметр. Когда вы передаете значение, не обозначая его, это свойство будет передано соответствующему конструктору, в случае с Binding это значение задает путь. По своей концепции это очень похоже на то, как работают атрибуты: вызов конструктора с последующими необязательными параметрами, например:
[AttributeUsage(AttributeTargets.Class), AllowMultiple = false, Inherited = false ]
Возможно, далеко за пределами того, о чем вы задаете вопрос, но я заметил, что между ними есть небольшая (и, вероятно, несущественная) разница. Поскольку я не могу объяснить это сам, я начал новый вопрос об этом здесь.