我有一个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
)
答案 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。