Декларативный UI и наследование - опаньки!
От: Kolesiki  
Дата: 01.04.20 17:26
Оценка: +1 -1
Ребят, интересный вопрос в свете "декларативного ГУЯ" и WPF в частности.

Допустим, есть бизнес-задача, где есть ряд однотипных окон (скажем, диалоги и у всех OK/Cancel).
Логично было бы, как мастодонты ООП, заделать базовый MyWindow, где есть кнопки OK/Cancel, а однотипные окна унаследовать от этого самого MyWindow и накидать нужные дополнительные редакторы.
А вот фигушки! 'MyWindow' cannot be the root of a XAML file because it was defined using XAML.
Получается, сели мы с этой декларативностью в лужу! Хотя вопрос-то принципиально разрешимый — в том же Delphi можно было спокойно наследовать окна и дополнять контролами.

Может, и в WPF можно заделать какую-никакую наследуемость? Скажем:

<Window>
    <PlaceholderForInheritors />
    
    <Button>OK</>
</>


...и тогда VS будет вместо PlaceholderForInheritors давать редактор для внутренних тегов!
Понятно, что это костыль и кто-то даже захочет что-то вставить ПОСЛЕ кнопки ОК, но тут уж решать — либо космические архитектуры, либо вполне простое решение 99% проблем.

Так или иначе, факт тот, что при всех приятностях декларативности, она проваливается даже на самом базовом принципе ООП.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.