Здравствуйте, Pauel, Вы писали:
P>>>Именно это и есть в моем примере
S>>Нет это конструкторы. Ты явно не использовал XAML
P>Подозреваю, я xaml попробовал задолго до того, как вы про него узнали Не впечатлил — громоздко, многословно, тормозно
Там есть конвертеры, тригеры итд.
Я шарпом занимаюсь с 2002 года. И сначала XAML у меня вызвал отвращение.
Да я и не особо дизайнер.
P>Сам по себе XAML не летает — это просто фронтенд для описания структуры.
P>А далее готовая структура подаётся в бакенд, который её интерпретирует.
Ну вообще то он компилируется
Компиляция XAML
P>Декларативные свойства обеспечивают не xaml, а тот самый бакенд.
P>Собственно, вместо XAML вы можете использовать что угодно, абы структура на выходе была такая же.
P>Вы можете и сейчас это сделать разными путями
P>1. создавать структуру на основе более внятного ДСЛ, нежели xaml, транслируюя в xaml
P>2. императивно
P>3. на основе инциализаторов, которые кривые, что вы и продемонстрировали
P>То есть, буде в наличии внятные инциализаторы, нет необходимости городить огород из XAML
Я так же программно иногда делаю.
Но это от лени. Я не так часто его использую.
S>>>> Ну а в приведённом тобой коде это экономия на new.
P>>>Вы сначала накидайте полный эквивалент в c# а уже потом сравнивайте
S>>bkb
S>>S>>Form form = new() {
S>> header: new(content: aaa)
S>> main= new() {
S>> list new(){
S>> ItemA = new(id= 'a', content= yyy ),
S>> ItemB = new(id= 'a', content= zzz ),
S>> }
S>> },
S>> footer= OkCancelFooter {onOk = onOkHandler, onCancel= onCancelHandler, onDispose= onDisposeHandler}
S>>}
S>>
P>Итого — по вашему коду не сильно видна разница между объектами и списками, + шум new()
Ну можно
list = new List<object>
а new кому то шум, а кому то явное определение
P>Кроме того, у вас вероятно ошибка
P>Вот здесь создаем список у которого два элемента, один с типом ItemA, второй ItemB
P>P>[
P> ItemA {id: 'a', content: yyy },
P> ItemB {id: 'a', content: zzz },
P>]
P>
ну значит будет
new ItemA() {id= 'a', content= yyy },
new ItemB() {id= 'a', content= zzz },
или если есть конструктор с параметрами id и content
new ItemA(id: 'a', content: yyy),
new ItemB(id: 'a', content: zzz ),
Это не особо принципиально. Это из области флаттера и Dart . У Котлина тоже такое есть.
Но XAML он не для программистов, а дизайнеров. Изначально идея была отделить дизайнеров и программистов