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