我有以下文本框:
<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>
在 View 模型中:
VoorzieningParameters = new ObservableCollection<Parameter>();
VoorzieningParameters.Add(new Parameter() { Naam = "berging" });
其中 Parameter 是一个带有描述 (Naam) 和 double 值的类。
public class Parameter
{
public Parameter()
{
}
public string Naam { get; set; }
public double? Double { get; set; }
}
这工作正常,我在文本框中输入数据,当我点击保存按钮时,我循环遍历 ObservableCollection 中的所有“参数”并将它们写入 XML。但是现在我想制作一个加载按钮,而不是将值写入文本框,我只想在 View 模型中设置参数并改用 TwoWay 绑定(bind)。但是,当我将绑定(bind)模式更改为 TwoWay 时,文本框不再接受小数点分隔符(或 .)。当我尝试输入 7.0 时,它只是说 70。
我试过在文本框上使用字符串格式,然后它允许一个分隔符但是当我尝试输入像 7.0 这样的东西时它变成了 7.0.0
我该如何解决这个问题?
最佳答案
当您将绑定(bind)设置为 double 时,它会自动调用 .ToString(),因此无需使用 Converter 在 TextBox.Text 中显示其值。不幸的是,它不允许放置 '.'或 ',' 正如你所描述的。我有几个解决方案
关于c# - 具有双向数据绑定(bind)(双)的文本框不允许小数点分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25743902/