【问题标题】:Silverlight Binding in Pivot Control透视控件中的 Silverlight 绑定
【发布时间】:2011-05-20 23:54:29
【问题描述】:

我有一个设计问题:在透视视图(三个“页面”)中,我有很多绑定。好吧,每个透视视图(TextBox、Map...)中大约有 12 个项目。

我意识到这些绑定大大减慢了我的视图负载。但是我的数据透视的第一个“页面”上的绑定是唯一需要加载的。我可以放一个进度指示器并在线程中加载我的其他数据(实际上,绑定的数据只会在 HTTPWebRequest 之后设置)。

我怎样才能告诉我的应用程序?比如“onLoadPageX:绑定项目”

非常感谢,我不知道我是否清楚

【问题讨论】:

    标签: silverlight binding windows-phone-7


    【解决方案1】:

    您应该能够为每个PivotItemLoaded 事件添加RoutedEventHandler。当加载特定的PivotItem 页面时会触发此事件;当页面卸载时,还有一个相应的Unloaded 事件,以防您需要释放任何资源。

    【讨论】:

    • 好的,所以我应该以编程方式在我的 Loaded 回调中添加 UI 元素?
    • 您可以通过编程方式添加它们;这实际上取决于您在该页面上拥有的 UI 元素。例如,如果您只有一个 ListBox,您可以在 XAML 中声明它,但关闭可见性,使用数据加载绑定的资源项,然后使该项可见。
    【解决方案2】:

    您的问题很模糊,但是有很多选项可以显示加载状态、延迟绑定和在枢轴中有很多控件:

    如果您需要做任何可能需要时间的事情,请在 UI 线程之外进行。

    如果您正在做一些需要时间的事情,那么您应该向用户显示正在发生的事情的指示。这可能是一条消息或动画,具体取决于可能的时间段和应用程序的其余部分。

    如果您的内容高度依赖从 Web 加载的数据,请确保在未能加载数据时设置适当的超时时间。如果没有可用的数据连接,也会有有用的消息。

    如果您的 UI 高度依赖于外部加载的详细信息,您可以在知道需要显示什么后考虑将控件添加到 UI。

    如果 UI 将始终具有相同的控件但其中的内容不同,您可以考虑将数据绑定到具有占位符内容的对象,这些占位符内容会在从 Web 服务下载相关信息时更新。

    如果您的数据透视表中有很多项目,您应该考虑推迟单个项目的加载,这样您就不会在需要它们之前加载它们。仅加载显示的项目旁边的数据。这样,它们对用户来说似乎是预加载的,但可以减轻对系统的影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 2011-09-18
      • 2011-08-23
      • 1970-01-01
      • 2011-10-13
      • 2011-05-21
      • 2011-08-24
      • 2011-11-22
      相关资源
      最近更新 更多