0

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

因此 60° 30' 45" 将输入为 60° 30.750' 。

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

这个想法是这样用户就不会弄乱输入,它将被设置在 3 个不同的文本框中。一种用于度数,另一种用于分钟,一种用于小数秒。将其中一个数字分成两个文本框有点糟糕,但如果他们必须在其中输入整数,则担心所有点或逗号混淆,并且可能会搞砸。

所以我认为可能有用的一件事是 IMultiValueConverter 但它似乎只适用于 MultiBindings 这是我在这里没有做的事情。

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

有没有更好的解决方案。我可以将 MultiValueConverter 用于这样的事情吗?

4

2 回答 2

2

您可以尝试使用 MaskedTextBox,例如Extended WPF Toolkit中的那个。

于 2012-04-11T18:01:00.013 回答
1

您可以使用Masked TextBox。此实现使用MaskedTextProvider,它是一个 .net 类。

于 2012-04-11T18:02:09.373 回答