繁体   English   中英

.net WPF IValueConverter构造方法

[英].net WPF IValueConverter Constructor

简单的问题:

为什么我必须具有IValueConverterconstructor

我不是在问,为什么我必须有一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM