2010-02-02 8 views
4

나는 종종 datetime-propertys에 바인딩 된 wpf-projects에서 텍스트 상자를 사용합니다. 날짜 형식을 독일 형식 dd.MM.yyyy으로 지정하고 싶습니다. 현재 필자는 필자가 작성한 변환기를 사용하여 필요한 dateformat을 제공 할 수 있습니다.날짜 형식 지정을 위해 항상 변환기를 작성해야합니까?

이 같은 예를 들어

는 :

<TextBox Name="Date" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type prj:MyBar}}, Path=Date, Converter={StaticResource dateConverter}, ConverterParameter=dd.MM.yyyy}" /> 

컨버터가하는 유일한 것은, 날짜 시간의 ToString(string formatString) -method를 호출하는 것입니다.

데이터 바인딩으로 날짜 서식을 지정하는 '스마트 한 방법'이 있습니까? C# 코드를 작성할 필요가 없을 경우 가장 좋습니다. 아마도 microsoft-libs에 데이터 바인딩을위한 날짜 변환을 할 수있는 기존 클래스가 있지만 아직 찾지 못했습니다. 어떤 조언,

인사, 마틴

답변

9

.NET 3.5 SP1이 StringFormatter을 가지고이있는 경우

좋은 것입니다.

<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy}'}"/> 

결과 : 2010년 2월 2일

<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:D}'}"/> 

결과 : 2010년 2월 2일 (화요일)

그러나 결과는 시스템 기본 날짜 시간 형식에 따라 달라질 수 있습니다.

+1

표준 날짜/시간 형식은 모든 .Net 버전에 포함되어 있습니다. http://msdn.microsoft.com/en-us/library/az4se3k1(VS.71).aspx (version 1.1) – HadleyHope

+0

.NET 3.0에서이 기능을 사용할 수 있습니다. 아직 프로젝트를 3.5로 마이그레이션하지 않았기 때문에 가능합니다. – martin

+0

문자열 형식 변환기를 만들고 형식화 문자열을 변환기 매개 변수로 전달하십시오. 그럼 당신은 단지 그들 모두를 위해 하나의 변환기를 만들 필요가/3.5sp1로 이동하면/때 업데이 트가 쉽습니다. –