更改Content属性时会触发哪个事件

时间:2016-02-08 09:36:11

标签: c# silverlight navigation

我有两个页面ProductSearchProductDetail并且我正在将Content属性更改为在页面之间导航。我想知道是否有任何事件被触发,所以我可以写一些代码吗?

ProductDetail页面上我有UIElement属性

public UIElement MainContent { get; set; }

ProductSearch页面上我导航到ProductDetail通过设置Content属性,如下所示:

 private void OnGetDetailsClick(object sender, RoutedEventArgs e)
 {
    ProductDetail productDetail = new ProductDetail();
    productDetail.MainContent = this.Content;
    this.Content = productDetail;
 }

ProductDetail页面Back按钮上,我导航回ProductSearch

private void OnBackButtonClick(object sender, RoutedEventArgs e)
{
  this.Content = MainContent;
}

现在我想知道如何在导航回ProductSearch页面时调用方法,即如何知道我已从ProductDetail页面导航?我试图检查它是否加载了页面,但发现当你更改控件的内容时,它不会触发页面的load事件。任何解决方案?

1 个答案:

答案 0 :(得分:0)

是的,这不会执行加载事件,因为你只是明显改变了内容。

如果您想利用导航功能,请查看此视频。即使它完成了混合,这些概念也适用于Visual STudio:https://vimeo.com/6599527(简单的Silverlight主/细节导航应用程序与Blend 3)

您应该查看有关主要详细信息绑定的文章,例如:https://msdn.microsoft.com/en-us/library/cc645060(v=vs.95).aspx

关键是利用Silverlight带来的强大绑定概念。如果您没有使用深层链接,您可能需要考虑使用用户控件来隐藏/显示详细信息而不是额外的页面。

HTH