我有一個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綁定一起工作。就像一個綁定數組例如..如果我做了,我將需要在代碼中設置綁定,我不知道是否是正確的方式去 –