0

多くのユーザー ロールを持つ WinRT アプリを開発しています。ユーザーロールに基づいて、アプリ内の多くのページのビューが変更されます

たとえば。私は学生の役割と教授の役割を持っています。学生がログインすると、受信した個人情報、パフォーマンス チャート、ToDo、およびバッジが表示され、教授がログインすると、受信した個人情報、ToDo、およびフィードバックが表示されます。

必要なコンポーネントだけを表示するにはどうすればよいですか?

Grid.Visibility をバインドすることはこれを行う良い方法ですか、それともより良い方法はありますか?

更新:
@Ahmed (以下の回答) によって提案された方法でそれを行うことにより、デザイン内のすべてのコントロールを読み込み、その可視性のみを変更します。私のページはまだ重いです。

とにかく、見たいコントロールだけをロードできる場所はありますか

4

2 に答える 2

0

ロールに基づいて可視性を変更する、このような独自のコンバーターを作成できます

 public class RoleToVisibilityConverter : IValueConverter
 {
   public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
   {
    var user= value as User;
    if(user!= null) {
        return user.IsInRole((string)parameter) ? Visibility.Visible : Visibility.Collapsed;
   }
    return null;
   }

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo   culture)
  {
     throw new NotImplementedException();
  }
 }

XAML では、コンバーターを使用して、このようにコントロールの可視性を設定できます。

<Control Visibility={Binding Path=CurrentUser, Converter={StaticResource RoleToVisibilityConverter}, ConverterParameter=Student }/>
于 2013-05-24T05:03:36.607 に答える