【问题标题】:Which event is fired when Content property is changed更改 Content 属性时会触发哪个事件
【发布时间】:2016-02-08 09:36:10
【问题描述】:

我有两个页面 ProductSearch,ProductDetail 并且我将 Content 属性更改为在页面之间导航。我想知道是否触发了任何事件,以便我可以在其中编写一些代码?

ProductDetail 页面上我有UIElement 属性

public UIElement MainContent { get; set; }

ProductSearch 页面 I 导航到 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 事件。有什么解决办法吗?

【问题讨论】:

    标签: c# silverlight navigation


    【解决方案1】:

    是的,这不会执行加载事件,因为您只是在明显地更改内容。

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

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

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

    HTH

    【讨论】:

    • 所以当我们这样导航时不会触发任何事件?任何属性都没有改变?或者有什么技巧可以让我在导航回页面时获得通知?
    • 我不知道。您是否正在使用允许您连接的 silverlight Navigaton 控件?这些是可用的事件:msdn.microsoft.com/en-us/library/…
    • 否则您可以在silverlight 页面上拖动一个ContentControl。并将 MainContent 附加到 DataContext。然后就可以订阅 DataContextChangedEvent
    猜你喜欢
    • 2011-06-01
    • 2011-05-21
    • 1970-01-01
    • 2011-02-08
    • 2019-08-02
    • 1970-01-01
    • 2012-06-30
    • 2014-04-08
    相关资源
    最近更新 更多