Я хотел бы создать TextBox, который принимает только числовые значения в определенном диапазоне. Каков наилучший способ реализовать такой TextBox?
Я думал о выводе TextBox и переопределении проверки и принуждения TextProperty. Однако я не уверен, как это сделать, и я понимаю, что получение WPF-контроля обычно не рекомендуется.
<Б > Изменить:
Мне нужен был очень простой текстовый блок, который отфильтровывает все нажатия клавиш, которые не являются цифрами. Самый простой способ добиться этого - обработать событие TextBox.PreviewTextInput:
private void textBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int result;
if (!validateStringAsNumber(e.Text,out result,false))
{
e.Handled = true;
}
}
(validateStringAsNumber - это моя функция, которая в основном использует Int.TryParse)
Некоторые из предлагаемых решений, вероятно, лучше, но для простой функциональности я нуждался в этом решении, которое было бы самым простым и быстрым в реализации, достаточным для моих нужд.