Привязка радиокнопок по заданному значению c без префикса в WPF - PullRequest
0 голосов
/ 01 марта 2020

У меня есть окно с двумя переключателями, у второго - 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 Ответ

0 голосов
/ 01 марта 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...