Привязка переключателей к определенному значению без префикса в WPF

У меня есть окно с двумя переключателями, у второго есть IntegerUpDown.

Свойство IsChecked привязывается к IntegerUpDown.

Я хочу, чтобы IntegerUpDown имел значения от 1 до 100, но в случае выбора "1" я хочу, чтобы другой переключатель был включен.

Проблема начинается при наборе, например, "12". "1" сразу щелкает переключатель, не дожидаясь других цифр.

Мой код WPF:

Радиокнопка 1:

<RadioButton 
    Content="{Resx PatternDialog.MatchOnlySuffix, DefaultValue='suffix'}"
    IsChecked="{Binding dnsLabelCount, Converter={local:DnsLabelCountToBoolConverter}}"/>

Радиокнопка 2:

<RadioButton 
    Name="matchUpToNumberSuffixRb"
    Content="{Resx PatternDialog.MatchUpToNumberSuffix, DefaultValue='Match'}"
    IsChecked="{Binding dnsLabelCount, Converter={local:DnsLabelCountToBoolConverter Invert=True}}"/>

IntegerUpDown:

<IntegerUpDown 
    Name="updown"
    Value="{Binding dnsLabelCount}"
    Width="55" 
    ForceRange="True"
    MinValue="1"
    MaxValue="100"
    IsEnabled="{Binding IsChecked, ElementName=matchUpToNumberSuffixRb}"/>

Это мой конвертер, который, я знаю, не должен быть таким, но я не уверен, на что его менять.

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    var result = (int)value == 1;
    return Invert ? !result : result;
}

1 ответ

Решение

Добавить небольшую задержку для привязки (Value="{Binding dnsLabelCount, Delay=250}"), и исходное свойство не будет обновлено сразу

Другие вопросы по тегам