Как определение XAML превращается в экземпляр объекта?

XAML позволяет указать значение атрибута с помощью строки, содержащей фигурные скобки. Вот пример, который создает экземпляр Привязка и назначает его свойству Текст элемента Текстовое окно.

<TextBox Text = "{Binding ElementName=Foo, Path=Bar}"/>

Я хочу расширить XAML, чтобы разработчик мог ввести это как действительное ...

<TextBox Text = "{MyCustomObject Field1=Foo, Field2=Bar}"/>

Это создаст экземпляр моего класса и соответствующим образом установит свойства Field1 / Field2. Это возможно? Если так, то как ты это делаешь?

Если это возможно, у меня есть дополнительный вопрос. Могу ли я взять строку "{Binding ElementName = Foo, Path = Bar}" и попросить фреймворк обработать ее и вернуть указанный ею экземпляр Привязка? Это должно быть где-то уже сделано, чтобы вышеуказанный XAML работал, и поэтому должен быть способ запросить обработку того же самого.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 572
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

взгляните на markupextensions http://blogs.msdn.com/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspx

-1 Я знаю, что это старое, но это неправильный путь. Вместо того, чтобы создавать собственное расширение разметки, в этом случае вы должны создать экземпляр MyCustomObject в разделе «Ресурсы» XAML и использовать обычную привязку для доступа к нему.

Michael 28.06.2012 13:27

ссылка мертва и пропала

StayOnTarget 04.04.2019 16:39

Класс Binding - это Расширение разметки. Вы можете написать свой собственный, производный от System.Windows.Markup.MarkupExtension.

ElementName и Path - это просто свойства объекта Binding.

Что касается последующих действий, вы можете создать новый Binding в коде, создав экземпляр объекта Binding. Я не знаю, как обработать строку.

Другие вопросы по теме