我有一个文本框:
<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" });
Parameter是一个类,包含一个描述(Naam)和一个双精度浮点型数值。
public class Parameter
{
public Parameter()
{
}
public string Naam { get; set; }
public double? Double { get; set; }
}
这个问题原本没问题,我在文本框中输入数据,当我点击保存按钮时,我循环遍历我的ObservableCollection中的所有“参数”并将它们写入XML。现在我想制作一个加载按钮,但不是将值写入文本框,而是只需设置视图模型中的参数并使用双向绑定。但是,当我将绑定模式更改为TwoWay时,文本框不再接受小数分隔符(,或.)。当我尝试输入7.0时,它只显示70。
我尝试在文本框上使用字符串格式,这样它就允许使用分隔符,但是当我尝试输入类似于7.0的东西时,它变成了7.0.0
如何解决这个问题?