首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >改变DataTable在WPF GridView中的显示格式

改变DataTable在WPF GridView中的显示格式
EN

Stack Overflow用户
提问于 2016-03-21 06:20:37
回答 2查看 2.1K关注 0票数 0

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

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DataTable dt = new DataTable();
dt.Columns.Add("date", typeof(DateTime));
dt.Columns.Add("val", typeof(double));

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

与此相关的问题很多,但没有一个真正解决问题,只是将内容转换为字符串。(ie here)而不是将DataTable修改成预期的格式(或GridView)

用户应该在GridView中输入日期。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-21 07:52:24

经过几个小时的搜寻,看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

票数 0
EN

Stack Overflow用户

发布于 2016-03-21 06:31:10

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <DataGrid Name="CompetitionList" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding CompetitionList}"
              SelectedItem="{Binding SelectedCompetition}" AutoGenerateColumns="False" CanUserAddRows="False"
              CanUserDeleteRows="False" BeginningEdit="CompetitionList_OnBeginningEdit">

        <DataGrid.Columns>
            <DataGridTextColumn Width="3*" Header="{lex:Loc Scrutinus:Text:Title}" Binding="{Binding Title}" />


            <DataGridTextColumn Width="1*" Header="{lex:Loc Scrutinus:Text:Starttime}"
                                Binding="{Binding StartTime, StringFormat={}{0:dd.MM.yyyy HH:mm}}" />

        </DataGrid.Columns>

    </DataGrid>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36133523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文