我一个文本框绑定到一个对象,像这样:如何使用d:DesignInstance和没有默认构造函数的类型?
<TextBlock d:DataContext="{d:DesignInstance ViewModel:TaskVM }"
Text="{Binding Title}" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown">
</TextBlock>
现在我想知道如何使它在设计过程中显示模拟数据。我试着做这样的事情:
<TextBlock Text="{Binding Path=Title}" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown">
<d:DesignProperties.DataContext>
<ViewModel:TaskVM Title="Mock"/>
</d:DesignProperties.DataContext>
</TextBlock>
然而,由于TaskVM没有默认的构造函数,我得到一个“没有默认构造函数”中找到。
我知道,当我使用d:DataContext="{d:DesignInstance ViewModel:TaskVM }"
它创建一个模拟数据类型。有没有办法让我设置这个模拟类型的属性?
谢谢!
我喜欢这个主意:)。继承将允许我跳过重新创建所有属性。我仍然更喜欢有一种内置的方式来操纵WPF创建的模拟对象。它创建了一个模拟对象,不是吗?它在MSDN文档中提到:d:IsDesignTimeCreatable \t 在d:DesignInstance标记扩展中,指定从您的类型创建设计实例,而不是由设计器生成的替代类型。 – VitalyB
@VitalyB - 是的,你是对的。它看起来像您可以设置'd:IsDesignTimeCreatable'到'FALSE'和替代型会为你在运行时创建(使用您的TaskVM类型为“形状”)。确切地说, –
。这是非常令人生畏的,我无法设置该替代类型的属性。 – VitalyB