【发布时间】:2011-06-23 23:19:23
【问题描述】:
我正在构建一个可供许多用户使用的应用程序。每个用户都被归类到下一个身份验证级别之一:
public enum AuthenticationEnum
{
User,
Technitian,
Administrator,
Developer
}
某些控件(例如按钮)仅对特定级别的用户公开。 我有一个保存当前用户身份验证级别的属性:
public AuthenticationEnum CurrentAuthenticationLevel { get; set; }
我想将此属性绑定到某些控件的“Visibilty”属性,并将参数传递给 Converter 方法,告诉它能够看到控件的最低身份验证级别是什么。 例如:
<Button Visibility="{Binding Path=CurrentAuthenticationLevel, Converter={StaticResource AuthenticationToVisibility}, ConverterParameter="Administrator"}"/>
表示只有“管理员”和“开发者”可以看到该按钮。
不幸的是,上面的代码将"Administrator" 作为字符串传递。当然,我可以在转换器方法中使用 switch/case 并将字符串转换为AuthenticationEnum。但这很丑陋并且容易出现维护错误(每次enum 更改 - 转换器方法也需要更改)。
有没有更好的方法将非平凡对象作为参数传递?
【问题讨论】:
-
请把 Fredrik 的回答设为已回答。
-
查看其他格式和更多详细信息 - stackoverflow.com/questions/359699/…
标签: c# .net wpf data-binding converters