从列获取当前月份到ObservableCollection

时间:2018-09-05 11:35:36

标签: c# wpf date datetime observablecollection

DataGrid中,我将显示月份中的所有“工作”天(DateColumn列):

ColX  |  DateColumn | ColZ
  1   |  2018-09-03 |  A
  10  |  2018-09-04 |  AA
  8   |  2018-09-05 |  A1
  234 |  2018-09-06 |  C20

现在我正在尝试构建方法,该方法会将日期列表更改为下个月和上个月。我的问题是从我的ObservableCollection获取当前的月份。

private void PrevMonth_Executed(object obj)
{
  //Console.WriteLine(MyConceptItems.ElementAt(0).DateColumn);--2018-09-03
  int month = DateTime.ParseExact(MyConceptItems.ElementAt(0).
              DateColumn, "YYYY-MM-DD", CultureInfo.InvariantCulture).Month
}

它使我陷入错误:

Exception thrown: 'System.FormatException' in mscorlib.dll

An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

String was not recognized as a valid DateTime.

1 个答案:

答案 0 :(得分:2)

如果DateColumnDateTime,则可以执行以下操作:

int month = MyConceptItems.ElementAt(0).DateColumn.Month;

如果它是string,则应将类型更改为DateTime。或解析string值时使用以下格式:

int month = DateTime.ParseExact(MyConceptItems.ElementAt(0).DateColumn, "yyyy-MM-dd", CultureInfo.InvariantCulture).Month;