Windows Universal app. Хранение интерфейса в БД и его динамическая загрузка во время выполнения, как?

Возможно ли реализовать хранение xaml в БД и построение интерфейса во время работы приложения в Windows Universal app? Например, у разных пользователей, в зависимости от прав, отобразить разные контролы с их привязкой к разным данным. Куда копать или что почитать?

upd.
предполагается, что пользователи будут создавать контент и интерфейс под него, с предоставлением доступа другим пользователям. поэтому и нужно будет хранить в БД.
  • Вопрос задан
  • 512 просмотров
Решения вопроса 2
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
DataTemplate, DataTriger. Хватит? XAML хранить в БД - это перебор.
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
XamlReader вам в помощь, у него есть метод Parse, из XAML в строке возвращает объект. Привязку событий к элементам в вашем Xaml нельзя использовать, придется в ручную обходить дерево и привязывать события.

В своем проекте я делал разделение прав на основе поведений (Behaviors), сделал наследников от стандартного Behaviors(которые устанавливают свойства Visibilyty, Enabled), и в зависимости от роли пользователя, в XAML выглядит так

<CheckBox IsChecked="{Binding Paid, Mode=TwoWay}">
          <i:Interaction.Behaviors>
                   <sb:EnabledBehavior IsEnabled="True" AuthService="{Binding Auth, Mode=OneWay, Source={StaticResource asp}}" UserRoles="EditEcoData,SetPaid" />
           </i:Interaction.Behaviors>
</CheckBox>


AuthService, класс в котором есть методы для определения прав.

Те, если у пользователя есть роли необходимые, то checkbox будет активным, иначе нет.
можно сделать, такое и на Visibilyty.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы