我正在构建一个可供许多用户使用的应用程序。每个用户都被分类到下一个身份验证级别之一:
public enum AuthenticationEnum
{
User,
Technitian,
Administrator,
Developer
}
某些控件(例如按钮)仅对特定级别的用户公开。我有一个保存当前用户身份验证级别的属性:
public AuthenticationEnum CurrentAuthenticationLevel { get; set; }
我想将此属性绑定到某些控件的“可见性”属性,并将参数传递给 Converter 方法,告诉它能够看到控件的最低身份验证级别是什么。例如:
<Button Visibility="{Binding Path=CurrentAuthenticationLevel, Converter={StaticResource AuthenticationToVisibility}, ConverterParameter="Administrator"}"/>
表示只有“管理员”和“开发者”可以看到该按钮。不幸的是,上面的代码"Administrator"
作为字符串传递。当然,我可以在转换器方法中使用 switch/case 并将字符串转换为AuthenticationEnum
. 但这很丑陋并且容易出现维护错误(每次enum
更改 - 转换器方法也需要更改)。
有没有更好的方法将非平凡对象作为参数传递?