2011-10-20 2 views
3

WPF 양식에 DatePicker를 사용하고 있는데 사용자가 영국식 형식 (예 : 31/12/1980)으로 날짜를 입력하면 WPF가 원하는 것처럼 보입니다. 그것을 미국식으로 변환하면 1980 년 12 월 31 일을 읽습니다.영국식 대신 WPF DatePicker를 기본값으로 사용

이것은 SQL 삽입에 대한 범위를 벗어나는 예외입니다.

아무도이 문제를 이미 경험 한 적이 있습니까? 그렇다면 어떻게 수정 했습니까?

답변

7

UI의 로케일 설정이 올바른지 확인해야합니다.

WPF에 대해서는 잘 모르겠지만 Silverlight에는 XAML이 Windows의 로캘을 따르지 않는 버그가 있다는 것을 알고 있습니다. 당신은 뷰의 생성자에 다음 코드를 포함해야 :

이제 컴퓨터가 en-GB로 설정되지 않고 응용 프로그램이 당신이 중 하나 CurrentCulture의를 설정하여 언어를 강제해야합니다 필요한 경우
// Get "StringFormat=c" to honour culture settings. 
// From http://timheuer.com/blog/archive/2010/08/11/stringformat-and-currentculture-in-silverlight.aspx 
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); 

응용 프로그램 스레드 또는 "en-GB"전달 이 (암시) 접근 방식을 구현하는

+1

안녕하세요 크리스 간주 될 수있는 관리자 제어 모듈을주기

System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB"); cultureInfo.DateTimeFormat.ShortDatePattern = ConfigurationManager.AppSettings["DateFormat_UK"]; System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo; 
  • . 당신의 답은 나를 올바른 길로 인도합니다. 고마워. 그러나 언어가 Window 섹션에 명시 적으로 정의되어야 함을 발견했습니다 : ** Language = "ko-GB"**, 그렇지 않으면 어떤 이유에서든 American으로 되돌아갑니다. 이상하지만 그것은 트릭을 완료했습니다. 나를 올바른 길로 인도 해 주셔서 감사합니다. Rich –

  • +0

    Window.Language는 문서에 따라 default = "en-US"처럼 보입니다. http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.WINDOWS.FRAMEWORKELEMENT.LANGUAGE)%3bk(VS.XAMLEDITOR)%3bk(TargetFrameworkMoniker-%22.NETFRAMEWORK) % 2cVERSION % 3dV4.0 % 22) & rd = true –

    +0

    @JamieClayton - 네, 맞습니다. – ChrisF

    0

    방법은 다음과 같습니다 설정 파일

  • 스토어 서로 다른 날짜 형식을 (필요에 따라) (아마도 다른 나라를 WRT 및/또는 문화에

    • 설정 문화 정보)를 리소스 파일이나 config와 같은 표준 위치에 저장합니다 (XML 파일에있을 수도 있음). 그리고 시작/메인 실행에
    • 샘플 코드를 그 저장된 설정을 사용합니다 - 또한

  • 관련 문제