我很困惑为什么在这种用例中需要默认构造函数。
<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;
}
}
在这种情况下,默认的构造函数是什么?我怎么知道它需要什么参数?
答案 0 :(得分:1)
您的MarkupExtension需要一个带有字符串参数的构造函数(这不是默认的构造函数),因为您在创建转换器的XAML表达式中添加了不必要的字符串:
Converter={aw:CountToBoolConverter CountToBoolConverter}
这里的第二个CountToBoolConverter
字符串毫无意义,表达式应该只是
Converter={aw:CountToBoolConverter}