[英].net WPF IValueConverter Constructor
简单的问题:
为什么我必须具有IValueConverter
的constructor
?
我不是在问,为什么我必须有一个empty constructor
,我是在问为什么我必须有一个empty constructor
?
如果我有:
public class PauseButtonValueConverter : MarkupExtension, IValueConverter
{
//public PauseButtonValueConverter() //<- Uncomment this and the error is fixed
//{
//}
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
然后,我的VS2012
给了我编译时错误: No constructor for type 'PauseButtonValueConverter' has 0 parameters.
如果添加constructor
,该错误将得到解决。
这是因为您源自受保护的构造函数 MarkupExtension。 在这种情况下,编译器不会自动生成默认构造函数。 您必须自己添加它。
在大多数情况下,创建值转换器时不需要从MarkupExtension派生。 我假设您有这样做的原因,但是如果没有原因,请删除基类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.