在WPF GridView

时间:2016-03-21 14:20:37

标签: c# wpf datetime gridview formatting

我有一个DataTable,显示在WPF网格视图中。所有列都是键入的。有一个DateTime类型的列,当我在GUI中显示表格显示MM/dd/yyy格式的日期时,我需要更改格式,因为我的用户非常容易出错。所需格式为dd/MM/yyyy

示例代码:

DataTable dt = new DataTable();
dt.Columns.Add("date", typeof(DateTime));
dt.Columns.Add("val", typeof(double));

GridView gv = new GridView();
gv.ItemsSource = dt.DefaultView;

有一些问题涉及到这个,但没有一个实际上解决了问题,只是将内容转换为字符串。 (即here)而不是将DataTable修改为预期的格式(或GridView

enter image description here 用户应该输入GridView中的日期。

2 个答案:

答案 0 :(得分:1)

在xaml代码中,更改GridView不会自动生成列。然后在xaml代码中添加列。指定绑定时,可以设置字符串格式。这是我如何做到这一点的一个例子:

DOSKEY md=mkdir $* && cd $*

答案 1 :(得分:0)

经过几个小时的搜索,看到:

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("es-ES");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("es-ES");
// Put the following code before InitializeComponent()
Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

这段惊人的代码必须在您的主要应用程序表单中,并且它会将所有UI元素的文化更改为您设置的元素。 这适用于.net 4.5及以上版本。

有关详细信息,请参阅here