У меня есть приложение для рабочего стола WPF.Лучший способ установить права пользователей на элементы с помощью привязок
Я также использую sql lite для хранения таблиц/значений.
Одна из этих таблиц - это полномочия пользователя.
Итак, когда пользователь регистрируется в коде, вы получите список ролей, которые у них есть разрешение на использование.
Затем я просматриваю каждую запись, чтобы установить, включена ли кнопка (т. Е.) Или нет.
так в моем ViewModel ...
var myUserRoles = DB.CallMyMethodToReturnPermissions(User.Id);
foreach (role in myUserRoles)
{
switch (role.Name)
{
case "CanDelete"
if (role.Enabled)
{
UserPermissions.CanDelete = true;
}
break;
case "CanAdd"
if (role.Enabled)
{
UserPermissions.CanAdd = true;
}
break;
....etc etc etc
}
}
, а затем, на мой взгляд (а) что-то вроде этого ...
<Button name="CanDelete "IsEnabled="{Binding UserPermissions.CanDelete}" />
<Button name="CanAdd "IsEnabled="{Binding UserPermissions.CanAdd}" />
....etc etc etc
Все это хорошо работает. Но, глядя в будущее, я вижу добавленную функциональность и, следовательно, устанавливаются роли пользователя/разрешения.
Таким образом, следует ли мне учитывать изменения в парадигме или жестком коде, когда мне это нужно? Или есть способ управлять этим из моей таблицы БД?
Я задаю этот вопрос только потому, что я относительно новичок в WPF и привязках, поэтому задавался вопросом, есть ли какие-то умные альтернативы?
Я не делать WPF, но с чисто объектно-ориентированной точки зрения, я хотел бы создать базовый класс для кнопок (или даже управления), который имеет встроенную логику, чтобы потреблять независимо от того, какая схема безопасности у вас есть, и на основе этого установите свой статус включения. – JuanR
@Juan Привет, спасибо, что ответили. Да, это была одна из альтернатив, которые я бы рассмотрел, но я хотел посмотреть, могу ли я заставить ее работать с привязками wpf. Как, например, массив привязки .. Что бы я сделал, мне нужно было бы установить привязки в коде, который я не уверен, что это правильный путь. –