Я создал конвертер для этого типа функций, хотя я не уверен, что есть лучший способ.
public class AdminVisibilityConverter : IValueConverter
{
#region Methods
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isAdmin = WebContext.Current.User.IsInRole("Admin");
return isAdmin ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Затем я добавляю конвертер в свойство видимости элемента управления.
<toolkit:AccordionItem Tag="#ManageAnnouncements" Visibility="{Binding Source=User, Converter={StaticResource AdminVisibilityConverter}}">
Вы можете передать роли или имена пользователей в параметре конвертера, но моему экземпляру это не нужно.