1

我看过另一个问题,但是我得到的错误更具体。

这个示例数据使用了一个视图模型,它没有默认的无参数构造函数,但它确实有一个公共参数化的构造函数。

我相信设计时数据使用反射并且应该能够处理这个(因为它实际上并没有实例化类)。因此,它让我感到困惑,为什么我在设计时会收到以下错误:

“AccessDeniedViewModel”类型不包括任何可访问的构造函数。

我的 XAML 中包含设计时数据的行是d:DataContext="{d:DesignData /SampleData/AccessDeniedViewModelSampleData.xaml}". 我使用 Blend 的“从类创建示例数据...”来生成这个数据文件。

但是,当我在 Visual Studio 2010 中打开此视图时,它完全能够与设计时数据一起显示。

我真的不想放置无参数构造函数仅在设计时使用,非常感谢任何让这些设计数据在 Blend 中工作的方法。

编辑:我还应该提到,绑定支持仍然存在,当我向视图添加绑定时,列出了可用属性,就像它解析为正确的类型一样,只是无法实例化它。

4

1 回答 1

2

您将需要提供一个默认构造函数。原因如下:为什么 XML-Serializable 类需要无参数构造函数

我能想到的唯一其他选择是在视图的构造函数中编写逻辑,它在设计时加载 xaml,以便您能够调用构造函数的参数化版本。

于 2011-11-22T15:38:34.693 回答