0

我需要能够将边框的可见性设置为可见 10 秒。边框位于 MainPage.xaml 中,它是 Content.xaml 的父级。诀窍是我需要通过单击可从 Content.xaml 访问的 ContextMenu 项目来更改边框的可见性,该项目作为 UserControl 加载到 MainPage.xaml 中。它也应该是基于数据网格中单元格值的条件。我在 Content.xaml 中建立了一个方法,它应该有条件地更改 MainPage.xaml 中边框的可见性。由于边界超出了范围,我需要找到一种能够连接到它的方法。

根据数据网格中单元格值中的内容设置可见性的代码:

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;
    }
4

2 回答 2

1

MainPage.xaml 应该始终是您的 rootvisual。您可以通过

以下代码:

Application.Current.RootVisual

这可以从您的 silverlight 应用程序中的任何地方访问。

于 2011-03-26T00:19:28.983 回答
0

为了回答您的评论,RootVisual 是您的 MainPage.xaml。

要访问 Content.xaml 中的方法,您需要将这些方法设置为公开。然后从 MainPage.xaml 您可以这样调用它(通过将 ucMainPage_MainContent 的内容转换为 Page1 类型)。

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

(TestMethod1 是我添加到 Page1.xaml 中的新公共方法。)

于 2011-03-28T10:29:31.700 回答