Задать вопрос

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

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

upd.
предполагается, что пользователи будут создавать контент и интерфейс под него, с предоставлением доступа другим пользователям. поэтому и нужно будет хранить в БД.
  • Вопрос задан
  • 512 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы