2013-03-20 176 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  
    }