2011-07-30 75 views
2

我试图在DataGrid中动态添加DateTime(7/30/2011)列。我将上传我手动制作的网格屏幕截图。我想制作一个范围组合框。因此,如果用户选择2周,那么网格会逐日添加列。动态添加DataGrid日期时间列

Screenshot

+0

提示:请确保您使用浏览器拼写检查。将其设置为英语。 –

回答

2

你可以做这样的事情

private void AddColumns(GridView gv, string[] dateColumns) 
{ 
    for (int i = 0; i < dateColumns.Length; i++) 
    { 
     gv.Columns.Add(new GridViewColumn 
     { 
      Header = dateColumns[i], 
      DisplayMemberBinding = new Binding(String.Format("[{0}]", i)) 
     }); 
    } 
} 

这可以叫上了ComboBox OnSelectionChanged()

你也可以使用一个DataTemplate正确显示的列:

<DataTemplate DataType="{x:Type DateTime}"> 
     <TextBlock Text="{Binding StringFormat={0:d}}" /> 
</DataTemplate> 

不,只是调整y我们对您的需求的StringFormat:

基本是Binding="{Binding date, StringFormat={}{0:dd/MM/yyyy}}"

+0

以及我如何创建日期列? –

+0

@酸查看编辑 –

+0

感谢重播,但它对我来说很不清楚:(我必须这样做?:绑定=“{绑定日期,StringFormat = {} {0:dd/MM/yyyy}}” –