Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用stringformat时WPF文本框绑定不起作用_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 使用stringformat时WPF文本框绑定不起作用

C# 使用stringformat时WPF文本框绑定不起作用,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我的问题是: 我有一个文本框,它使用文本框预览并对输入的文本进行验证。文本框绑定到双重属性。最初,当用户输入一个带有小数点的数字时,它会崩溃,因为当它在每次按键后更新时,数字是1。它被自动更改为1(删除小数点),当在小数点后添加下一个数字时,它会认为插入新字符的位置是位置3,但由于小数点被自动删除,因此不再有位置3,它会出错。我通过将StringFormat={}{0:d}添加到xaml中修复了这个问题。除了第一次加载所有内容时不再显示原始值(来自数据库的值)之外,这一切都很好。但是,如果我只删

我的问题是:

我有一个文本框,它使用文本框预览并对输入的文本进行验证。文本框绑定到双重属性。最初,当用户输入一个带有小数点的数字时,它会崩溃,因为当它在每次按键后更新时,数字是1。它被自动更改为1(删除小数点),当在小数点后添加下一个数字时,它会认为插入新字符的位置是位置3,但由于小数点被自动删除,因此不再有位置3,它会出错。我通过将
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”);这允许文本框填充,但我又回到了问题,当它进行输入文本验证时,删除了代码中的小数点。找到了问题的根源。请参阅以下链接: