如何解决在XAML中命名没有默认构造函数的用户控件
| 我有一个没有无参数构造函数的用户控件;我们称它为“ 0”。我想在另一个控件的XAML代码(称为MainWindow
)中插入一个名为myControl
的WithoutDefaultConstructor
。但是,出现此编译器错误:
类型\'WithoutDefaultConstructor \'
不能具有名称属性。值
类型和无默认类型
构造函数可用作项目
在ResourceDictionary中。
如何在不向WithoutDefaultConstructor
添加无参数构造函数的情况下解决此问题?
这是MainWindow.xaml
的内容:
<Window x:Class=\"WpfApplication1.MainWindow\"
xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"
xmlns:WpfApplication1=\"clr-namespace:WpfApplication1\" Title=\"MainWindow\"
Height=\"350\" Width=\"525\">
<WpfApplication1:WithoutDefaultConstructor Name=\"myControl\">
</WpfApplication1:WithoutDefaultConstructor>
</Window>
以下是WithoutDefaultConstructor.xaml.cs
的内容:
using System.Windows.Controls;
namespace WpfApplication1
{
public partial class WithoutDefaultConstructor : UserControl
{
private int I_really_need_to_initialize_this_int;
public WithoutDefaultConstructor(int i)
{
InitializeComponent();
I_really_need_to_initialize_this_int = i;
}
}
}
解决方法
与ѭ9属性无关。您只是无法使用带有XAML参数的构造函数来创建对象的实例。在XAML 2009中有一种方法可以做到这一点,但是在编译成BAML的代码中就没有这种方法,例如这样。
, 只是不做。而是在用户控件上公开一个“ 10”属性。如果您确实要确保已明确设置它,请暴露一个
int?
并抛出一个if12ѭ。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。