【问题标题】:Add/remove usercontrol in panorama item using MVVM - Windows Phone使用 MVVM 在全景项目中添加/删除用户控件 - Windows Phone
【发布时间】:2012-12-14 19:58:37
【问题描述】:

我有一个全景应用程序,到目前为止,它有两个全景项目,“最近”和“流行”。这些使用来自视图模型的绑定填充数据。我想添加第三个(“搜索”)全景项目,最初只显示一个文本框和一个按钮。

当用户输入文本并单击按钮时,我希望将文本框和按钮替换为显示搜索结果的 ListBox 控件。

我找不到任何关于如何使用 MVVM 模式执行此操作的示例。我没有使用 MVVM 框架,也不想使用,因为我只是在学习这一切。

如果您可以解释或更好,请指出允许我这样做的示例,我将非常感谢您的帮助。如果我在请求中遗漏了任何必需的信息,请告诉我。

此致,

卡马尔

【问题讨论】:

    标签: mvvm windows-phone panorama-control dynamic-usercontrols


    【解决方案1】:

    通常,对于这样的事情,您的 ViewModel 中有一个属性可以告诉视图要显示的内容。对于如何做到这一点,您有很多不同的选择。

    一种选择是让列表框绑定到一个 Results 属性。将文本框和按钮放在 Grid 中,并将网格的 Visibility 属性绑定到 Visible 的属性,如果没有结果,则不可见。

    有很多不同的方法可以做到这一点。

    例如herehere

    【讨论】:

    • 嗨,布莱恩特,感谢您提供的信息。您是否有任何 Windows Phone 特定示例。我是新手,很难从您提供的链接中的示例中提取我需要的关键信息。按照这个例子我马上遇到的一个问题是我得到一个“属性'内容'被设置了不止一次。”尝试在一个全景项目中使用两个不同的用户控件时出错。
    【解决方案2】:

    您可以将自定义类的列表绑定到全景图 ite 。 自定义类包含标题和/或描述以及页面类。

    您可以在主视图模型中维护视图。

    另一种解决方案是在 xaml 中添加项目并为整个全景项目控件使用相同的视图模型。使用属性,您可以控制每个项目的可见性。

    就像科比说的:有很多解决方案。这取决于您的应用程序和要求... :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      相关资源
      最近更新 更多