C# LINQ到SQL类,如何更改列格式?(数据网格)

C# LINQ到SQL类,如何更改列格式?(数据网格),c#,wpf,linq,datagrid,sql-server-2014,C#,Wpf,Linq,Datagrid,Sql Server 2014,如何更改DataGrid控件中LINQ to SQL类列中的数据格式 我有一个SQL server表列,其中包含DateTime数据,如您所料,10/19/2015 8:30:00 AM 如何更改格式以仅显示日期10/19/2015 我在属性面板中看不到任何可以这样做的东西。这将在XMAL中处理吗 到目前为止我掌握的代码 public partial class MainWindow : Window { HomeLINQSqlDataContext dc = new H

如何更改DataGrid控件中LINQ to SQL类列中的数据格式

我有一个SQL server表列,其中包含
DateTime
数据,如您所料,
10/19/2015 8:30:00 AM
如何更改格式以仅显示日期
10/19/2015

我在属性面板中看不到任何可以这样做的东西。这将在XMAL中处理吗

到目前为止我掌握的代码

public partial class MainWindow : Window
    {
        HomeLINQSqlDataContext dc = new HomeLINQSqlDataContext(Properties.Settings.Default.Staff_ManagerConnectionString2);
        //TimeRecorderLINQSqlDataContext dc = new TimeRecorderLINQSqlDataContext(Properties.Settings.Default.Staff_ManagerConnectionString1);       
        public MainWindow()
        {
            System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

            PopulateCollection();
            if (dc.DatabaseExists()) TimeRcorderDataGrid.ItemsSource = dc.Staff_Time_TBLs;
            //if (dc.DatabaseExists()) TimeRcorderDataGrid.ItemsSource = dc.Staff_Data_TBLs;
            InitializeComponent();


        }
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            dc.SubmitChanges();
        }
        private void PopulateCollection()
        {
            ObservableCollection<FooClass> fooColl = new ObservableCollection<FooClass>();
            for (int i = 0; i <= 10; i++)
            {
                fooColl.Add(new FooClass() { Description = i.ToString(), SomeDate = DateTime.Now });
            }
            TimeRcorderDataGrid.ItemsSource = fooColl;
        }
    }
    public class FooClass
    {
        public string Description { get; set; }
        public DateTime SomeDate { get; set; }

    }  

}
公共部分类主窗口:窗口
{
HomeLINQSqlDataContext dc=新的HomeLINQSqlDataContext(Properties.Settings.Default.Staff\u ManagerConnectionString2);
//TimeRecorderLINQSqlDataContext dc=新的TimeRecorderLINQSqlDataContext(Properties.Settings.Default.Staff\u ManagerConnectionString1);
公共主窗口()
{
System.Threading.Thread.CurrentThread.CurrentUICulture=新文化信息(“en-US”);
PopulateCollection();
如果(dc.DatabaseExists())TimeRcorderDataGrid.ItemsSource=dc.Staff\u Time\u TBLs;
//如果(dc.DatabaseExists())TimeRcorderDataGrid.ItemsSource=dc.Staff\u Data\u TBLs;
初始化组件();
}
私有无效保存按钮\u单击(对象发送方,路由目标)
{
dc.提交更改();
}
私有void PopulateCollection()
{
ObservableCollection foocol=新的ObservableCollection();

对于(int i=0;i您可以在绑定中使用
StringFormat
设置
DateTime
的格式。让我展示一个示例:

XAML:

代码隐藏:

public MainWindow()
{
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
   InitializeComponent();
   PopulateCollection();
}

private void PopulateCollection()
{
    ObservableCollection<FooClass> fooColl = new ObservableCollection<FooClass>();
    for (int i = 0; i <= 10; i++)
    {
        fooColl.Add(new FooClass() { Description=i.ToString(), SomeDate=DateTime.Now});
    }
    dataGrid.ItemsSource = fooColl;
}

如果要明确定义列(而不是依赖autoGenerateColumns),则应该能够说明日期的格式

<DataGrid  AutoGenerateColumns="False" ... >
    <DataGrid.Columns>
        <DataGridTextColumn Header="Raised" Binding="{Binding INSERT_PROPERTY_HERE, StringFormat=\{0:dd/MM/yy\}}"/>
    </DataGrid.Columns>
 </DataGrid>


这对所有这些都很陌生,但是如何指定某个列来应用该格式呢?DataGrid中有12列是从SQL server导入的,其中只有两列是DateTime,第7列和第8列。如何为这些列指定格式呢?我不知道为什么,但这将第7列和第8列数据组合在一起,并将其放入fir中我应该改变循环中的一些东西吗?我上面发布的代码是根据你的代码改编的,并将第7列和第8列的数据合并到第1列中。而第1列中应该包含的数据已经不存在了?我打算更新那些帮助过我的人,我总是更新那些帮助过我的人,不管结果如何,这只是目前,我似乎还不能很好地解决这个问题。干杯谢谢你抽出时间来帮助我。你让我看到了一些不同的做事方式。谢谢,在所有的帮助之后,你的回答也帮助了我,谢谢你抽出时间,感谢你的帮助。
public class FooClass
{

    public string Description { get; set; }
    public DateTime SomeDate { get; set; }
}
public MainWindow()
{
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
   InitializeComponent();
   PopulateCollection();
}

private void PopulateCollection()
{
    ObservableCollection<FooClass> fooColl = new ObservableCollection<FooClass>();
    for (int i = 0; i <= 10; i++)
    {
        fooColl.Add(new FooClass() { Description=i.ToString(), SomeDate=DateTime.Now});
    }
    dataGrid.ItemsSource = fooColl;
}
<DataGrid Name="TimeRcorderDataGrid" Margin="0,0,0,79" Grid.ColumnSpan="3">
  <DataGrid.Columns>
     <DataGridTextColumn Binding="{Binding ColumnOne}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnTwo}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnThree}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnFour}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnFive}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnSix}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnSeven, StringFormat=\{0:dd.MM.yy \}}"}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnEight, StringFormat=\{0:dd.MM.yy \}}"}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnNine}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnTen" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnEleven}" Width="Auto" />
     <DataGridTextColumn Binding="{Binding ColumnTwelve}" Width="Auto" />
  </DataGrid.Columns>
</DataGrid>   
<DataGrid  AutoGenerateColumns="False" ... >
    <DataGrid.Columns>
        <DataGridTextColumn Header="Raised" Binding="{Binding INSERT_PROPERTY_HERE, StringFormat=\{0:dd/MM/yy\}}"/>
    </DataGrid.Columns>
 </DataGrid>