【问题标题】:MVVM for a silverlight page with dynamic input controls用于具有动态输入控件的 silverlight 页面的 MVVM
【发布时间】:2011-06-07 19:58:36
【问题描述】:

假设您有一个 xaml 页面,它接受两个输入(例如 DATE 和一些 TEXT 值)并在 DataGrid 上显示结果,它很容易拥有一个具有 dataTypes DateTime、string 和一些 Collection 的 3 个属性的类并实现相同在 MVVM 中。

我有一个 xaml 页面,其中包含一个 DataGrid 和几个基于特定条件动态生成的输入控件(如文本框或日期选择器)。我想以 MVVM 模式实现这一点,但不知道该怎么做。任何指针都会有所帮助。

【问题讨论】:

    标签: c# silverlight mvvm


    【解决方案1】:

    根据我的经验,MVVM 并不能解决所有演示场景,有时您只需要使用代码隐藏或构建自定义控件即可。我建议在这里构建自定义控件,该控件采用(与依赖属性绑定)对象或对象列表,并生成控件(具有输入验证/验证的文本框,用于整数、双精度、日期选择器等),并将给定对象绑定到它们.最后,您将拥有一个智能控件,它接收对象并呈现输入字段,并绑定到它们。您的 VM 类只会公开对象或对象列表。

    【讨论】:

      【解决方案2】:

      将视图和模型分开总是好的;然而,这并不总是通过简单类型的简单数据绑定来完成。

      当“规范”是要使用的控件的逻辑类型时,我会研究类似于自定义控件的东西,它可以数据绑定到 {name, value, spec} 对列表。

      考虑一下;这就像一个属性网格所做的那样,如果你向它传递一个属性描述符的自定义集合......。

      Devexpess 有一个“垂直网格”可能会有所帮助,还请查看第 3 方属性网格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 2023-03-22
        • 1970-01-01
        • 2011-08-26
        • 2010-10-31
        相关资源
        最近更新 更多