Когда использовать Path в WPF Binding?

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

DataMemberBinding="{Binding SomeProperty}"
DataMemberBinding="{Binding Path=SomeProperty}"
39
задан BoltClock 23 September 2012 в 14:55
поделиться

1 ответ

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

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

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

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

44
ответ дан 27 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: