У меня есть следующие текстовое поле:TextBox с TwoWay DataBinding (двойной) не позволяет Десятичный разделитель
<TextBox x:Name="VoorzieningBerging"
HorizontalAlignment="Right" TextChanged="SimulatieWijziging"
Margin="0,0,45,0" Width="60" Height="25">
<TextBox.Text>
<Binding Path="VoorzieningParameters[0].Double"
ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged"
FallbackValue="0" Mode="OneWayToSource">
<Binding.ValidationRules>
<src:DoubleValidation/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
И в ViewModel:
VoorzieningParameters = new ObservableCollection<Parameter>();
VoorzieningParameters.Add(new Parameter() { Naam = "berging" });
Где Параметр класс с описанием (НААМ) и double для значения.
public class Parameter
{
public Parameter()
{
}
public string Naam { get; set; }
public double? Double { get; set; }
}
Это работает отлично, я ввожу данные в текстовом поле, и когда я нажимаю кнопку сохранить I цикл через все «Параметры» в моем ObservableCollection и записать их в XML. Однако теперь я хочу сделать кнопку загрузки, но вместо того, чтобы записывать значения в текстовые поля, я хотел бы просто установить параметры в режиме просмотра и вместо этого использовать привязку TwoWay. Однако, когда я меняю режим привязки на TwoWay, текстовое поле больше не принимает разделитель десятичных чисел (, или.). При попытке ввода 7,0 это только 70.
ВОФКIve пытался использовать формат строки на Textbox, он затем позволяет Seperator, но когда я пытаюсь что-то вроде входа 7.0 становится 7.0.0
Как я решите эту проблему?
TextBox.Text по умолчанию строки, попробуйте использовать конвертер, чтобы бросить это сделать двойной – Maximus
Не могли бы вы дать мне пример? Я пробовал несколько конвертеров без успеха – user3692104