2012-04-11 2 views
0

내 WPF 응용 프로그램에서 사용자는 분 : 10 분수로 분 : 초 : 초의 형식으로 GPS 좌표를 입력합니다.여러 텍스트 상자를 하나의 값으로 변환하는 방법

그래서 60 ° 30 '45 "60 ° 30.750로 입력 될 것이다'.

그때 위의 예는 60.5125로 저장 될 수 있도록 순수한 진수로 저장합니다.

생각했다 사용자가 입력을 엉망으로 만들지 않으려면 3 개의 다른 텍스트 상자에 설정해야합니다. 하나는 도수, 다른 하나는 분수, 다른 하나는 소수 자릿수입니다. 숫자 중 하나는 두 개의 텍스트 상자로 분리되지만, 모든 점이나 쉼표가 혼란스럽고 두려워서 정수를 입력하면 엉망이 될 수 있습니다.

So 한 가지 생각한 것은 IMultiValueConverter 였지만 MultiBindings에서만 작동하는 것으로 보입니다. MultiBindings는 내가 여기서하지 않는 것입니다.

현재 내 솔루션은 다른 속성에 바인딩하고 코드에서 모든 계산을 수행하지만 소수 비트에 대해서는별로 행복하지 않습니다. 나는 3 개의 분수 문자를 사용한다고 가정하지만, 7을 입력하고 0.700을 가정하면 0.007이되므로 문자열 형식 비트를 사용해야한다고 생각합니다.

더 나은 해결책이 있습니까? 이런 식으로 MultiValueConverter를 사용할 수 있습니까?

+0

하나의 텍스트 상자를 고수하고 프로그램을 사용자가 하나의 형식으로 만 제한하지 않고 _intelligently_ 구문 분석 할 수있게하는 것이 좋습니다. '''와'''검색은 그에 따라 진행됩니다. ('') 대신 공백 문자를 사용할 수 있습니다. – ja72

+0

@ ja72 이미 두 개의 텍스트 상자로 구현했지만 완전히 안내되기를 원합니다. 어떻게해야 할 지 전혀하지 않을 것입니다. –

+0

@Ingo : 다른 방법으로 사용자를 안내 할 수 있습니다. 예를 들어 입력란에 워터 마크를 넣거나 포커스가있을 때 미니 가이드를 표시하는 등의 방법이 있습니다. 요점은, 사용자가 자신의 문제를 가장 잘 해결한다고 생각하는 해결책을 묻는 것일 수 있습니다. 문제를 완전히 이해하는 것이 현명합니다. 그것들은 훨씬 더 효과적인 해결 방법이 될 수 있습니다. –

답변

2

Extended WPF Toolkit에서와 같은 MaskedTextBox를 사용해 볼 수 있습니다.

+0

Rubenhak TextBoxMaskBehaviour를 이미 사용하고 있습니다. 아마 당신이 언급 한 것이 더 강력 할 것입니다. –

관련 문제