2013-03-20 178 views
0

我已经创建了一个主页面的应用程序。并根据登录我要显示/隐藏不同的项目给用户取决于他的用户级别。 如何访问我从其他页面主窗口中创建的菜单条(即除主窗口除外) 例如: - 。 我有如何隐藏/取消隐藏WPF主窗口上的菜单条(使用框架和页面)

3页

主窗口,主页面包含菜单条 这个窗口只有菜单条,几个文本框显示文本。并在其他页面加载帧控制

登录用户窗口的另一页之后窗口,不同的页面

登录

(希望我很清楚)我使用帧应用 导航当应用程序启动时,它将打开登录页面。它不能在登录后显示菜单条 ,这取决于用户的菜单项必须可见。 该怎么做

+0

你跟随MVVM吗? – 2013-03-20 05:09:54

+0

是的。但在登录窗口中,我试图按钮单击导航。它会检查有效的用户并导航到页面 – 2013-03-20 05:39:36

回答

0

有一个属性叫可见性。将这与您的ViewModel绑定。

这是一个文本块的代码,它的可见性可以通过ViewModel进行更改。

<TextBlock Text="{Binding StatusMessage}" Visibility="{Binding IsStatusMessageVisible}" Foreground="Red" Background="#ffc8c8c8" /> 

public System.Windows.Visibility IsStatusMessageVisible 
{ 
    get 
    { 
     return (string.IsNullOrEmpty(StatusMessage)) 
      ? System.Windows.Visibility.Collapsed 
      : System.Windows.Visibility.Visible; 
    } 
} 

这实际上会检查StatusMessage是否为空然后不显示TextBlock。我猜你可以在你的MenuStrip中使用它。

+0

这是C#代码。将其转换为VB。 – 2013-03-20 06:01:42

+0

谢谢,但如何在不同的页面中调用它。就像我说的。从登录页面或用户窗口。 – 2013-03-20 06:29:11

+0

我不确定你的应用程序是什么样的。我假设有一个MainWindow和不同的视图(登录,注销)。 – 2013-03-20 06:33:03

0

对不起,它的回复相当晚,但可能它会有用的其他人看这个。

void MenuItemShowHideManager_OnClicked(object sender, RoutedEventArgs e) 

    { 
       var navService = NavigationService.GetNavigationService(this); 

       var window = new MasterPages.MyMasterWindow 
        { 
         MenuItem1 = {Visibility = Visibility.Hidden}, 
         MenuItem2 = {Visibility = Visibility.Hidden}, 
         MenuItem3 = { Visibility = Visibility.Visible } 

        }; 

      //Navigate to your default screen  
    }