代码之家  ›  专栏  ›  技术社区  ›  nlawalker

可与d:dataContext兼容。我错过了什么?

  •  5
  • nlawalker  · 技术社区  · 15 年前

    我觉得我仍然看到了很多指导和建议,说明视图优先方法是在应用程序中获得可重用性的最佳方法。但是,对于d:dataContext、d:designdata和d:designinstance,无论视图和视图模型如何连接在一起,都不容易解决可绑定性问题吗?

    使用DesignInstance,您只需选择一个具体的视图模型类型来在设计器中使用,就好像您得到了视图优先组合。实际上,使用designinstance实际上允许 更好的 分离关注点,而不是做IsDesignMode回流或创建一个默认的构造函数,仅仅是为了在真实的ViewModel中提供设计支持——您可以从ViewModel类型或公共接口类型继承来创建一个简单的“设计器”ViewModel,并且它完全约束于设计器。使用DesignData,您甚至不必这样做:您只需在XAML中声明性地创建一个假的ViewModel。

    的确,在进行上述活动时有一个很小的前期成本,但是结果实际上比将设计数据与真实的视图模型混合所得到的分离要干净。我有什么东西不见了吗?为什么可分割性仍然是一个大问题?

    1 回复  |  直到 12 年前
        1
  •  4
  •   JoshVarga    15 年前

    如果您有整个视图的实体模型数据,那么使用d:dataContext、d:designdata和d:designinstance应该可以使您具有可理解性。

    因此,对您的问题的答案是,简而言之,无论您如何在运行时使用视图(视图优先还是视图模型优先),您仍然可以拥有可伸缩性。如果在运行时版本中有一些viewModel逻辑或初始化,则只需确保设计时实例中有相同的逻辑或初始化。

    许多人试图通过创建两个基本的视图模型来找到一种不需要复制工作的方法。我也同意这样做可以更好地分开。

    推荐文章