在组合框中插入DateTime格式

时间:2013-07-11 12:52:43

标签: c# wpf binding combobox

我是Harvest_Base类,其中显示所有DateTime格式;

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;

    }

}

我有一个视图类,其中有两个组合框用于启动时间和停止时间。我想做一些事情,这些组合框应该以“hh:mm tt”格式向我显示值。

我的问题是:

  1. 这里需要绑定吗?如果是,请在答案中解释代码。

  2. 如果不需要绑定,那么我该怎么做才能达到这个结果呢?

1 个答案:

答案 0 :(得分:1)

您可以将组合框直接绑定到DateTime并在绑定上应用StringFormat,也可以以正确的格式绑定到代表DateTime的字符串。你也可以使用一个值转换器,但它有点矫枉过正。

以下是Binding子句中的StringFormat

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

根据您的喜好更改MM-dd-yyyy部分。