在WPF / Silverlight中设计时间数据 - 如何正确使用包装类?

时间:2010-10-23 15:53:13

标签: c# prism design-time-data

我正面临着“设计时支持”最佳实践的问题。我正在使用PRISM,我的对象是由DI容器创建的。让我们假设以下简单的场景:

我有一个对象工作流程。此工作流程具有多个属性,并且有一个WorkflowProvider,它提供工作流程列表。

如果我设计ListView我没有问题。我使用MainApplication对象作为设计时数据上下文,我的列表绑定到属性“WorkflowList”。在我的实时应用程序中,我可以将数据上下文设置为适当的实现。

但我不知道如何处理单一工作流程视图

通常我会将工作流对象创建为设计时数据上下文。但是我的工作流对象不能单独创建(使用空构造函数),它必须是例如...的属性。我的WorkflowProvider。所以我过去使用的一种方法是:

  • 为工作流程编写虚拟子类
  • 在虚拟的空构造函数中,获取“真正的工作流程”
  • 将“真实工作流程”的所有属性分配给我的虚拟课程的属性
  • 在我的设计时间视图中使用虚拟工作流程的实例

唯一的原因是我不知道如何将设计时数据上下文设置为属性而不是对象。这是可能的,还是有其他有意义的方法。为了澄清,我知道我可以绑定,例如我的“工作流程详细信息视图”中的网格到属性,但是我无法在列表视图中使用详细信息视图而不更改为DataTemplate。我希望你能解决我的问题: - )

克里斯

1 个答案:

答案 0 :(得分:0)

确定,
像往常一样,一点思考和一个好的猜测解决了我的问题:

d:DataContext =“{Binding WorkflowProvider.CurrentWorkflow}”

诀窍,在实时场景中将被忽略......