【问题标题】:Role of Parameterless constructor in WPF (XAML)WPF(XAML)中无参数构造函数的作用
【发布时间】:2013-09-17 11:43:24
【问题描述】:

我一直在阅读WPF 上的在线教程,在那里我读到了一行 “WPF 中的所有类都具有无参数构造函数并过度使用属性。这样做是为了使其完全适合 XAML 等 XML 语言。”

我通过使用一个参数化构造函数创建自定义类来检查上述单词并遇到错误“类型'custom_class_name'不可用作对象元素,因为它不是公共的或未定义公共无参数构造函数或类型转换器。”

我只是想知道一个具体的详细原因,无参数构造函数如何帮助实现这一点。

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    WPF 框架在构建可视化树时使用无参数构造函数来实例化我们在 XAML 页面中定义的所有对象。如果它试图实例化一个没有公共无参数构造函数的对象,那么你将抛出这个Exception。如果您要向对象添加无参数构造函数并重试,那么 Exception 应该消失。

    另请查看 MSDN 上的 Type '{0}' is not usable as an object element 页面。

    另外,我相信 .NET 中没有任何构造函数的类默认会自动提供“不可见”的无参数构造函数。但是,如果我们添加参数化构造函数,则不会自动提供无参数构造函数。

    【讨论】:

    • 另请注意:如果没有无参数构造函数,XAML 设计器将向您显示异常而不绘制 XAML。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2011-03-15
    相关资源
    最近更新 更多