C# WPF: Ввод в TextBox только строки формата Double с макс. 6 знаков после запятой
В разметке имеется TextBox, в который нужно разрешить ввод только цифр и запятой. Но при этом запятую можно вводить только один раз и количество символов после нее не должно превышать 6.
Изначально я пробовал посимвольно проверять состав строки и пытался добавлять исключения, но там очень много сложностей. Как сделать такое через привязки данных я тоже не понимаю - не удается установить параметр в xaml-разметке как здесь:
<TextBox Text="{Binding Value, StringFormat={}{0:#,#.00}}" />
Он просто отказывается воспринимать параметр StringFormat.
Пока что, единственное компактное и максимально неграмотное решение, которое пришло мне на ум - пробовать конвертировать содержимое строки в double при каждом обновлении TextBox.Text. Это тратит много ресурсов и все равно работает некорректно:
private void AmountOnlyNumbers(object sender, RoutedEventArgs e)
{
try
{
Convert.ToDouble(Amount.Text);
}
catch
{
if (Amount.Text.Length > 0) Amount.Text = Amount.Text.Remove(Amount.Text.Length - 1);
}
}
Как будет более правильно это сделать?