2013-07-11 3 views
0

모든 DateTime 형식이 표시되는 Harvest_Base 클래스가 있습니다.콤보 상자에 날짜 시간 형식 삽입

class Harvest_Base 
{ 

    public static DateTime storeTime(String date) 
    { 

     DateTime returnValue = new DateTime(); 

     if (date == "") 
      return returnValue; 

      //Time or Date Component Does not Exist 
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
       "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
       "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
       "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm", 
       "h:mm tt","hh:mm tt","HH:mm:ss","H:mm","HH:mm","h:mmtt"}; 
      DateTime result; 

      if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) 
       returnValue = result; 
      else 
       returnValue = DateTime.Today; 

     return returnValue; 

    } 

} 

은 내가 STARTTIME 및 stoptime 두 콤보를했습니다하는 뷰 클래스가 있습니다. 나는이 콤보 상자가 나에게 "hh : mm tt"형식으로 값을 보여줘야하는 일을하고 싶다.

내 질문은 :

  1. 여기에 필요한 바인딩인가? 대답이 '예'일 경우 답으로 코드로 설명하십시오.

  2. 바인딩이 필요하지 않은 경우이 결과를 얻으려면 어떻게해야합니까?

답변

1

이 어느 직접 DateTime에 콤보 상자를 바인딩하고 바인딩에 StringFormat을 적용하거나 나타내는 문자열에 결합하여 적절한 형식으로 DateTime. 가치 변환기를 사용할 수도 있지만 조금 지나치게 과장됩니다.

다음은 Binding

{Binding Path=PathToTheDateTime, StringFormat={}{0:MM-dd-yyyy}} 

변경 원하는대로 MM-dd-yyyy 부분에 StringFormat을합니다.