C# 使用stringformat时WPF文本框绑定不起作用
我的问题是: 我有一个文本框,它使用文本框预览并对输入的文本进行验证。文本框绑定到双重属性。最初,当用户输入一个带有小数点的数字时,它会崩溃,因为当它在每次按键后更新时,数字是1。它被自动更改为1(删除小数点),当在小数点后添加下一个数字时,它会认为插入新字符的位置是位置3,但由于小数点被自动删除,因此不再有位置3,它会出错。我通过将C# 使用stringformat时WPF文本框绑定不起作用,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我的问题是: 我有一个文本框,它使用文本框预览并对输入的文本进行验证。文本框绑定到双重属性。最初,当用户输入一个带有小数点的数字时,它会崩溃,因为当它在每次按键后更新时,数字是1。它被自动更改为1(删除小数点),当在小数点后添加下一个数字时,它会认为插入新字符的位置是位置3,但由于小数点被自动删除,因此不再有位置3,它会出错。我通过将StringFormat={}{0:d}添加到xaml中修复了这个问题。除了第一次加载所有内容时不再显示原始值(来自数据库的值)之外,这一切都很好。但是,如果我只删
StringFormat={}{0:d}
添加到xaml中修复了这个问题。除了第一次加载所有内容时不再显示原始值(来自数据库的值)之外,这一切都很好。但是,如果我只删除StringFormat,则会加载该值,但随后会再次出现崩溃问题
有什么想法吗
<TextBox Grid.Column="1" Margin="0" VerticalAlignment="Top"
Controls:TextBoxMask.NumericType="Double"
Text="{Binding Path=Model.Processor.BulkShiftInMilliseconds, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:d}}"/>
已测试,正文必须为30个字符
StringFormat={}{0}
您是否查看了Visual Studio输出窗口?您通常可以在其中找到有价值的信息来解决绑定错误。我确实做到了:“StringFormat”转换器无法转换值“1”(类型“Double”);这允许文本框填充,但我又回到了问题,当它进行输入文本验证时,删除了代码中的小数点。找到了问题的根源。请参阅以下链接: