从列到ObservableCollection获取当前月份

问题描述 投票:0回答:1

进入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.
c# wpf date datetime observablecollection
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.