【问题标题】:WPF-MVVM: Custom Control/User Control/POCO for Paint-like Application?WPF-MVVM:用于类似绘画的应用程序的自定义控件/用户控件/POCO?
【发布时间】:2010-07-10 12:49:08
【问题描述】:

所以我目前正在为运动创建一个类似 Paint 的应用程序。您将为每种类型的运动(篮球中的球/篮、曲棍球中的冰球/球门等)提供一些“形状”。

现在我的主要问题是我应该如何设计这些形状。据我了解,主要有3个选项:

  • 使用 ControlTemplate 自定义控件
  • 用户控件
  • POCO-Object (ViewModel) 用于属性存储,DataTemplate 用于可视化表示

我对形状对象有以下要求:

  • 应该易于序列化(保存为 XML 等)
  • 应该能够附加装饰物(用于调整大小等)
  • 应该是可扩展/可修改的(为它们提供不同的视觉风格等)
  • 应该为属性提供一些默认值机制

哪个选项最适合我的要求?

【问题讨论】:

    标签: wpf mvvm


    【解决方案1】:

    由于您有一个清晰的域模型(球、冰球等),我建议将它们建模为单独的对象 (ViewModel),然后使用 DataTemplates 以可视方式设置它们的样式。这样您就可以最大程度地控制要序列化的内容,并且可以独立于数据模型对视觉对象进行版本控制。

    序列化将由您的数据模型处理。 DataTemplates 可能使用自定义形状(仅从 Shape 派生)来进行实际渲染。 Adorners 可以在任何 UIElements 上工作,如果您使用数据绑定将相关属性绑定回您的 ViewModel,则您需要序列化所需的数据。 至于默认值的机制,只需让 Ball 和 Puck 类上的默认构造函数设置正确的值(直径、重量等)

    快乐编码

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      相关资源
      最近更新 更多