我有一个WPF桌面应用程序。使用绑定设置用户权限的更好方法
我也使用sql lite来存储表/值。
其中一个表是用户权限角色。
所以..当用户登录代码将获得他们有权使用的角色列表。
然后我通过每条记录来设置按钮(ie)是否已启用。
在我的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
}
}
,然后在我看来,(S)这样的事情...
<Button name="CanDelete "IsEnabled="{Binding UserPermissions.CanDelete}" />
<Button name="CanAdd "IsEnabled="{Binding UserPermissions.CanAdd}" />
....etc etc etc
这一切运作良好。但展望未来,我可以看到增加的功能,因此设置了用户角色/权限。
因此,当我需要时,我应该考虑另一个范例或硬代码更改吗?或者有没有办法从我的数据库表中驱动这个?
我只问这个问题,因为我相对较新的WPF和绑定,所以想知道是否有一些聪明的选择?
我并不真正做WPF但是从纯粹的OOP的角度来看,我会创建用于按钮(或甚至对照)一个基类,具有内置的逻辑来消耗无论您拥有什么安全方案,并根据此设置自己的启用状态。 – JuanR
@Juan嗨,感谢您的回复。是的,这是我会考虑的替代方案之一,但我想看看我是否可以使它与wpf绑定一起工作。就像一个绑定数组例如..如果我做了,我将需要在代码中设置绑定,我不知道是否是正确的方式去 –