WPF 바인딩 StringFormat 짧은 날짜 문자열
WPF에서 짧은 날짜라는 문자열 형식을 사용하고 싶습니다.
나는 다음과 같은 것을 시도했다.
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
어떻게하나요?
이 시도:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
문화에 민감하며 .NET 3.5 SP1 이상이 필요합니다.
참고 : 대소 문자를 구분합니다. "d"는 간단한 날짜 형식 지정자 이고 "D"는 자세한 날짜 형식 지정자 입니다.
표준 날짜 및 시간 형식 문자열 에 대한 MSDN 페이지 의 전체 문자열 형식 목록 과이 MSDN 블로그 게시물 의 모든 옵션에 대한 자세한 설명 이 있습니다.
그러나 이것에 대해 한 가지 문제가 있습니다. 문화를 올바른 값으로 설정하지 않는 한 항상 미국 형식으로 날짜를 출력합니다.
이 속성을 설정하지 않으면 바인딩 엔진은 바인딩 대상 개체 의 Language 속성을 사용 합니다. XAML에서 기본값은 "en-US"이거나 명시 적으로 설정된 경우 페이지의 루트 요소 (또는 모든 요소)에서 값을 상속합니다.
이를 수행하는 한 가지 방법은 코드 뒤에있는 것입니다 (스레드 문화를 올바른 값으로 설정했다고 가정).
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
다른 방법은 바인딩에서 변환기 문화를 설정하는 것입니다.
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
이것은 출력을 지역화 할 수는 없지만.
또는 영어 (또는 사용자 정의를 위해 혼합) 형식으로 사용하십시오.
StringFormat='{}{0:dd/MM/yyyy}'
사용 StringFormat
특성 (또는 ContentStringFormat
에 ContentControl
및 그 유도체, 예를 Label
).
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
메모 {}
표준 이전 String.Format
위치 인수 표기가 괄호 마크 업 확장 언어로 탈출 할 수 있습니다.
내가 유용하다고 생각한 일부 DateTime StringFormat 샘플. C # 예제 에서 해제
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
String.Format("{0:m mm}", dt); // "5 05" minute
String.Format("{0:s ss}", dt); // "7 07" second
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes
String.Format("{0:t tt}", dt); // "P PM" A.M. or P.M.
String.Format("{0:z zz zzz}", dt); // "-6 -06 -06:00" time zone
다음을 사용하십시오.
<TextBlock Text="{Binding Date, StringFormat=\{0:d\}}" />
값이있는 문자열을 추가하려면 다음을 사용하십시오.
<TextBlock Text="{Binding Date, StringFormat= 'Date : {0:d}'}" />
문자열 형식에 대한 작은 따옴표에 유의하십시오. 작동하지 않습니다.
Content="{Binding PlannedDateTime, StringFormat={}{0:yy.MM.dd HH:mm}}"
이것은 다음을 수행합니다.
Content="{Binding PlannedDateTime, StringFormat='{}{0:yy.MM.dd HH:mm}'}"
참고 URL : https://stackoverflow.com/questions/5046429/wpf-binding-stringformat-short-date-string
'code' 카테고리의 다른 글
HTML 이메일 콘텐츠를 브라우저 창 (또는 이메일 클라이언트 미리보기 창)의 중앙에 배치하는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.20 |
---|---|
내 'git branch'에 마스터가없는 이유는 무엇입니까? (0) | 2020.09.20 |
C #에서 개체를 바이트 배열로 변환하는 방법 (0) | 2020.09.20 |
Ubuntu-오류 : SD 카드를 만들지 못했습니다. (0) | 2020.09.20 |
CHM 파일을 열면 "웹 페이지 탐색이 취소되었습니다."가 생성됩니다. (0) | 2020.09.20 |