MarkupExtension, IValueConverter Defaul Constructor - PullRequest
0 голосов
/ 02 марта 2019

Я запутался, зачем мне нужен конструктор по умолчанию в этом случае использования.

<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;
    }
}

Для чего используется конструктор по умолчанию в этом случаеи откуда мне знать, какие параметры он ожидает?

1 Ответ

0 голосов
/ 02 марта 2019

Вашему MarkupExtension требуется конструктор со строковым параметром (который не является конструктором по умолчанию), поскольку вы добавили ненужную строку в выражение XAML, которое создает преобразователь:

Converter={aw:CountToBoolConverter CountToBoolConverter}

Вторая CountToBoolConverter строка здесьбессмысленно, и выражение должно быть просто

Converter={aw:CountToBoolConverter}
...