【问题标题】:How can I get MVVM Light to work nicely with a Grouped Items Page in Metro?如何让 MVVM Light 与 Metro 中的分组项目页面很好地配合使用?
【发布时间】:2012-05-04 11:57:09
【问题描述】:

我正在尝试按照本博文中的示例使用 MVVM Light 框架来实现 Metro 风格的分组项目页面,但使用 ViewModelLocator 来提供可混合性:

http://mikaelkoskinen.net/post/winrt-tutorial-mvvm-gridview-semanticzoom.aspx

我已经完成了这项工作,不幸的是网格本身没有出现在设计器中(这是我使用 MVVM Light 的重点)。我已经绑定了标题没有问题,所以我知道视图模型绑定正确。

有什么想法吗?

【问题讨论】:

  • 我通过使用绑定到可观察集合的简单列表视图进一步调查了这一点。在设计器中,它与集合绑定。我可以这么说,因为我可以在数据模板中看到硬编码的文本块。但是,任何绑定到 viewmodel 属性的文本块(即使该值是硬编码的)都不会在设计器中显示:(
  • 您能否发布一个无法正常工作的 xaml 示例?我想我遇到了这个问题,我让 GridView 的 ItemsSource 直接绑定到 viewmodel,而不是通过 CollectionViewSource。
  • Filip,@DanRyan,你成功了吗?我这里也有同样的问题。
  • 不,我最终混合了 MVVM 灯光和设计时间提示,即 d:Source="{Binding AllGroups, Source={d:DesignInstance Type=Home:HomeVm, IsDesignTimeCreatable=True}} . WPF 或 Silverlight 中的 Metro 设计绑定一定存在问题,您无需提供设计提示即可使 MVVM 灯光设计器支持正常工作:(

标签: mvvm-light windows-runtime winrt-xaml


【解决方案1】:

我遇到了同样的问题。问题是,如果您使用的是 CollectionViewSource,则需要明确说明,如下所示:

当 MVVM Light 将设计时服务注入到视图模型中时,您会期望这会获取您的服务并将设计时数据通过您的视图模型推送到 UI。但事实并非如此。

你需要给它一个明确的设计时实例才能让它工作:

有一篇关于using CollectionViewSource in design mode 的有用文章可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 2010-10-29
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多