MarkupExtension,IValueConverter 默认构造函数

MarkupExtension, IValueConverter Defaul Constructor

我很困惑为什么在这个用例中需要默认构造函数。

<Button Name="RemoveWord" IsEnabled="{Binding SearchText.Length, Converter={aw:CountToBoolConverter CountToBoolConverter}, ElementName=WordForAction }" />

我的转换器是

public class CountToBoolConverter : MarkupExtension,  IValueConverter
{
    public CountToBoolConverter(string value)
    {

    }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        bool enabled = (int)value > 0;
        return enabled;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return this;
    }
}

在这种情况下使用的默认构造函数是什么,我怎么知道它需要什么参数?

您的 MarkupExtension 需要一个带字符串参数的构造函数(这不是默认构造函数),因为您向创建转换器的 XAML 表达式添加了一个不必要的字符串:

Converter={aw:CountToBoolConverter CountToBoolConverter}

这里的第二个 CountToBoolConverter 字符串没有意义,表达式应该是

Converter={aw:CountToBoolConverter}