Admins = 1
がゆえのTabControlへのフルアクセスを持つ必要があり、
非admins = 0
ゆえにのみ利用可能な特定のタブを持っている必要があります。
ユーザーに応じて特定のタブを非表示にするにはどうすればよいですか?
ありがとうございました。
Admins = 1
がゆえのTabControlへのフルアクセスを持つ必要があり、
非admins = 0
ゆえにのみ利用可能な特定のタブを持っている必要があります。
ユーザーに応じて特定のタブを非表示にするにはどうすればよいですか?
ありがとうございました。
あり、これを行うための多くの方法がある、と私はIsAdmin
フラグが
私の個人的な好みが設定されている静的User
オブジェクトをオフに基づいているDataTrigger
ですが格納されている場所に依存するあなたが使用するものと仮定
<Style TargetType="{x:Type TabItem}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Value="True" Binding="{Binding IsAdmin, Source={x:Static local:Settings.CurrentUser}}">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
Settings
でユーザーが最初にログインすると、アプリケーションが起動し、ユーザーがログインするときに設定されてCurrentUser
プロパティが含まれて静的クラスだろう。CurrentUser
はと呼ばれるブール型プロパティがあります
あなたはアプリケーションの負荷後にすべてのタブを非表示にして、ユーザーに応じて、各タブを表示するには、次のようなシンプルな何かができるレベルにアクセス:
if (userId == 1) {
foreach (var item in tabControl.Items) {
item.Visibility = Visibility.Visible;
}
} else if (userId == 0) {
tabControl.Items[TableControlYouWantVisibile].Visibility = Visibility.Visible;
}
は、値コンバーターを作成します。
[ValueConversion(typeof(bool), typeof(Visibility))]
public class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool myValue = (bool)value;
if (myValue)
return Visibility.Visible;
else
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
を
はあなたのXAMLをリソースとしてこれを追加します。
<local:BooleanToVisibilityConverter x:Key="visibilityConverter"></local:VisibilityConverter>
は、あなたの財産番目と仮定しますユーザーがIsAdminという名前の管理者であることを示しています
<TabItem Visibility={Binding Path=IsAdmin, Converter={StaticResource visibilityConverter}}">
私はそうだと思います。
MVVMアーキテクチャを使用していますか? –
私はWPFでこれをやっている – Ebikeneser
これは、それが唯一の管理者のみのものをやっているユーザーを止めている場合は、承認を処理する非常に安全な方法ではありません... –