2011-03-25 13 views
0

我需要能夠將邊框的可見性設置爲可見10秒。該邊框駐留在MainPage.xaml中,它是Content.xaml的父級。訣竅是我需要通過單擊可從Content.xaml訪問的ContextMenu項來更改邊框的可見性,該項作爲UserControl加載到MainPage.xaml中。它也應該有條件地基於數據網格中的單元格值。我在Content.xaml中建立了一個方法,它應該有條件地改變MainPage.xaml中邊界的可見性。由於邊界超出了範圍,我需要找到一種方法來連接它。如何在Silverlight中跨頁面運行方法?

代碼以基於在數據網格中單元格的值的內容設置的可見性:

private void Delete(object sender, RoutedEventArgs e) 
    { 
     Packages_DataViewModel currentItem = MasterTile.SelectedItem as Packages_DataViewModel; 
     if (currentItem.Status != "has content") 
     { 
      this.MainPageBorder.Visibility = Visibility.Visible; 
     } 
     else 
     { 
      mv.DeletePackagesItem((Packages_DataViewModel)(MasterTile.SelectedItem)); 
     } 
    } 

我還需要運行我在Content.xaml用於從在一個的MainPage按鈕修改數據網格的內容的方法的.xaml。任何想法都非常感謝!

代碼更新單元格的值:

private void Status(object sender, RoutedEventArgs e) 
    { 
     Packages_DataViewModel currentItem = MasterTile.SelectedItem as Packages_DataViewModel; 
     currentItem.Status = "has content"; 
     this.MainPageBorder.Visibility = Visibility.Collapsed; 
    } 

回答

0

要回答您的評論,RootVisual是您的MainPage.xaml。

要訪問Content.xaml中的方法,您需要將這些方法設置爲public。然後從MainPage.xaml中可以這樣調用它(通過將ucMainPage_MainContent的內容轉換爲Page1類型)。

((Page1)this.ucMainPage_MainContent.Content).TestMethod1(); 

(TestMethod1是我加入的Page1.xaml一個新的公共方法。)

+0

謝謝!太好了。這對我來說能夠訪問Page1中的方法。我想知道如何正確應用'Application.Current.RootVisual'。我把它放在構造函數中。我嘗試過,但不允許訪問該對象。我想讓'grdMainPage_SystemMessages_Blue'對象可用。請讓我知道如何正確使用RootVisual。再次感謝你。 – vladc77 2011-03-28 19:04:17

1

MainPage.xaml中應該永遠是你的rootvisual。您可以輕鬆地通過

下面的代碼訪問對象:

Application.Current.RootVisual 

,這是入店來自世界各地的Silverlight應用程序。

+0

謝謝你的有趣的信息。我想找出什麼語法來訪問MainPage.xaml中的Content.xaml中的方法與rootvisual?謝謝! – vladc77 2011-03-26 16:15:04

+0

這裏可以使用類似於僅在WPF中可用的RountedCommands的東西嗎? Perphaps,這可能是錯誤的方向。我試圖瞭解它是否會讓人感覺到。謝謝! – vladc77 2011-03-26 16:15:27

+0

爲您的MainPage.xaml添加XAML,因爲它不清楚您的content.xaml如何在您的MainPage中加載。 – danbord 2011-03-26 17:21:41

相關問題