我需要能够将边框的可见性设置为10秒钟。边框位于MainPage.xaml中,它是Content.xaml的父级。诀窍是我需要通过单击可从Content.xaml访问的ContextMenu项来更改边框的可见性,Content.xaml作为UserControl加载到MainPage.xaml中。它也应该是条件基于datagrid中的单元格值。我在Content.xaml中建立了一个方法,它应该有条件地改变MainPage.xaml中边框的可见性。由于边界不在范围内,我需要找到一种方法来连接它。
根据datagrid中单元格值的内容设置可见性的代码:
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 :(得分:1)
MainPage.xaml应始终是您的rootvisual。您可以通过
轻松访问该对象以下代码:
Application.Current.RootVisual
这可以从Silverlight应用程序的任何地方访问。
答案 1 :(得分:0)
要回答您的评论,RootVisual就是您的MainPage.xaml。
要访问Content.xaml中的方法,您需要将这些方法设置为public。然后从MainPage.xaml中你可以这样调用它(通过将ucMainPage_MainContent的内容转换为Page1类型)。
((Page1)this.ucMainPage_MainContent.Content).TestMethod1();
(TestMethod1是我添加到Page1.xaml的新公共方法。)