C# 如何将多个文本框转换为一个值

C# 如何将多个文本框转换为一个值,c#,wpf,xaml,user-controls,imultivalueconverter,C#,Wpf,Xaml,User Controls,Imultivalueconverter,在我的WPF应用程序中,用户以度:分:秒的格式输入GPS坐标,作为分钟的小数点 因此,60°30'45“将被输入为60°30.750” 然后我将其存储为纯十进制数,因此上面的示例将存储为60.5125 这个想法是为了让用户不会弄乱输入,它将被设置在3个不同的文本框中。一个用于度,另一个用于分钟,另一个用于分数秒。有点糟糕的是,其中一个数字被分成两个文本框,但如果他们必须在文本框中键入整数,他们会害怕所有的点或逗号混淆和至少他们可能会搞砸 所以我认为一件事可能有效,那就是IMultiValueCo

在我的WPF应用程序中,用户以度:分:秒的格式输入GPS坐标,作为分钟的小数点

因此,60°30'45“将被输入为60°30.750”

然后我将其存储为纯十进制数,因此上面的示例将存储为60.5125

这个想法是为了让用户不会弄乱输入,它将被设置在3个不同的文本框中。一个用于度,另一个用于分钟,另一个用于分数秒。有点糟糕的是,其中一个数字被分成两个文本框,但如果他们必须在文本框中键入整数,他们会害怕所有的点或逗号混淆和至少他们可能会搞砸

所以我认为一件事可能有效,那就是IMultiValueConverter,但它似乎只适用于多绑定,这是我在这里没有做的

目前我的解决方案是绑定到不同的属性,并在代码中进行所有计算,但我对小数位并不满意。我假设3个小数字母,但如果它们只输入7,假设为0.700,但得到0.007,所以我想我必须做一个字符串格式位


有更好的解决方案吗。我可以用多值转换器来做这样的事情吗?

你可以试着用一个MaskedTextBox,比如来自的。

你可以试着用一个MaskedTextBox,比如来自的。

你可以用一个。这使用的是一个.net类。

你可以用一个。这使用的是一个.net类ass.

我建议坚持使用一个文本框,让程序智能地解析值,而不将用户限制为一种格式。搜索
相应地进行操作。(您可以接受空格字符来代替
°
)@ja72我已经用两个文本框实现了它,但它们希望被完全引导。如果他们不知道如何做某件事,他们根本不会去做。@Ingo:还有其他方法可以指导用户。例如,文本框中的水印包含预期输入的示例,或者在焦点位于文本框上时弹出迷你指南。甚至可能是某种性质的自动完成。问题是,可能是您的用户正在寻求他们认为最能解决问题的解决方案。完全理解这个问题是明智的,因为他们可能是解决问题的一种更有效的方式。@KentBoogaart我提出了一些类似工具提示之类的建议,但被要求这样做。我只是想知道这个解决方案是否可以很容易地制定出来,这样我就可以展示不同之处。我建议只使用一个文本框,让程序智能地解析值,而不将用户限制为一种格式。搜索
并相应地执行
。(您可以接受空格字符代替
)@ja72我已经用两个文本框实现了它,但他们希望得到完全的指导。如果他们不知道如何做某件事,他们根本不会去做。@Ingo:还有其他方法来指导用户。例如,在文本框中添加一个水印,带有预期输入的示例,或者当焦点在文本框上时弹出一个迷你指南。或者即使是某些性质的自动完成。问题是,可能是您的用户要求的解决方案是他们认为最能解决他们的问题的解决方案。充分理解问题是明智的,因为他们的解决方案可能是一种更有效的解决方法。@KentBoogaart我提出了一些建议,比如工具提示之类的,但今天被要求这样做y、 我只是想知道这个解决方案是否可以很容易地实现,这样我就可以展示不同之处。我已经在使用Rubenhak TextBoxMaskBehaviour。也许你提到的那个更强大。我已经在使用Rubenhak TextBoxMaskBehaviour。也许你提到的那个更强大。