0

Visual Studio 2010 Express で WPF c# を使用してデスクトップ アプリケーションを作成しています。ユーザーのアクセス レベルに応じて特定の要素を表示するメニュー バーを作成しました。メニューの可視性をデフォルトとして設定することはできますが、サインインが成功すると、それ以降Hiddenのビジビリティを設定するのが難しいことがわかりました。Visible以下は、「xaml」コードと c# コードのサンプルです。

「XAML コード」

<Menu Name="MenuBar" VerticalAlignment="Top" Width="Auto" Margin="0,0,0,389">
    <MenuItem Header="_Maintenance" Margin="2,0,0,2" Width="Auto"
              Visibility="hidden" Click="MenuItem_Click">
        <MenuItem Header="Customer Maintenance"/>
        <MenuItem Header="Staff Maintenance"/>
        <MenuItem Header="User Maintenance"/>
        <MenuItem Header="Item Maintenance"/>
        <MenuItem Header="Standing Maintenance"/>
    </MenuItem>
</Menu>

「C#コード」に対する私の試み

public MainWindow()
{
    InitializeComponent();
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    MenuBar.Visibility="Visible";

    //Load and display sign in screen
    App1 app = new App1();
    app.LoadSignIn();
}

私が直面しているエラーは次のとおりです。

タイプ 'string' を 'System.Windows.Visibility' に暗黙的に変換することはできません

4

2 に答える 2

0

この動作を取得するには、にバインドする必要がStyle Triggerあります (以下のリンクの 1 つから抜粋し、提供された xaml に一致するように変更します)。

<Window.Resources>
  <Style x:Key="VisibleWhenUserAllowedAccess" TargetType="MenuItem">
      <Style.Triggers>
          <DataTrigger Binding="{Binding IsUserAllowedAccess}" Value="False">
              <Setter Property="Visibility" Value="Hidden"/>
          </DataTrigger>
    </Style.Triggers>
  </Style>

<Menu Name="MenuBar" VerticalAlignment="Top" Width="Auto" Margin="0,0,0,389">
    <MenuItem Header="_Maintenance" Margin="2,0,0,2" Width="Auto"
          Click="MenuItem_Click" 
          Style="{StaticResource VisibleWhenFileIsOpen}">
        <MenuItem Header="Customer Maintenance"/>
        <MenuItem Header="Staff Maintenance"/>
        <MenuItem Header="User Maintenance"/>
        <MenuItem Header="Item Maintenance"/>
        <MenuItem Header="Standing Maintenance"/>
    </MenuItem>
</Menu>

次の 2 つのリンクで、WPF のメニューの可視性の変更に関する詳細を参照してください。

WPF UserControl コンテキスト メニューの可視性バインディング

http://www.codeproject.com/Articles/37848/WPF-Data-Bound-Menus

于 2013-06-04T01:13:23.783 に答える