Привязка переключателей к определенному значению без префикса в 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}"
), и исходное свойство не будет обновлено сразу