XAML позволяет указать значение атрибута с помощью строки, содержащей фигурные скобки. Вот пример, который создает экземпляр Привязка и назначает его свойству Текст элемента Текстовое окно.
<TextBox Text = "{Binding ElementName=Foo, Path=Bar}"/>
Я хочу расширить XAML, чтобы разработчик мог ввести это как действительное ...
<TextBox Text = "{MyCustomObject Field1=Foo, Field2=Bar}"/>
Это создаст экземпляр моего класса и соответствующим образом установит свойства Field1 / Field2. Это возможно? Если так, то как ты это делаешь?
Если это возможно, у меня есть дополнительный вопрос. Могу ли я взять строку "{Binding ElementName = Foo, Path = Bar}" и попросить фреймворк обработать ее и вернуть указанный ею экземпляр Привязка? Это должно быть где-то уже сделано, чтобы вышеуказанный XAML работал, и поэтому должен быть способ запросить обработку того же самого.





взгляните на markupextensions http://blogs.msdn.com/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspx
ссылка мертва и пропала
Класс Binding - это Расширение разметки. Вы можете написать свой собственный, производный от System.Windows.Markup.MarkupExtension.
ElementName и Path - это просто свойства объекта Binding.
Что касается последующих действий, вы можете создать новый Binding в коде, создав экземпляр объекта Binding. Я не знаю, как обработать строку.
-1 Я знаю, что это старое, но это неправильный путь. Вместо того, чтобы создавать собственное расширение разметки, в этом случае вы должны создать экземпляр
MyCustomObjectв разделе «Ресурсы» XAML и использовать обычную привязку для доступа к нему.