Позвольте мне объяснить несколько вещей, которые вы делаете в своем коде, и ответ будет предельно ясен.
Вам предоставляется список объектов ListContent для списка.
lstBidPeriods.DisplayMemberPath = "Text";
lstBidPeriods.ItemsSource = func.GetBidPeriods(....
Итак, я предполагаю, что у вас есть публичное свойство в классе ListContent с именем «Text».Если это так, то ваш список будет отображаться, перечисляя идентификаторы ваших BidPeriods.Отлично.
Но вы также указали это:
lstBidPeriods.SelectedValuePath = "Value";
Этим вы немного измените работу выделения.Давайте рассмотрим различные свойства выбора.
lstBidPeriods.SelectedItem - возвращает фактический выбранный экземпляр ListContent, поскольку помните, что вы передали список экземпляров ListContent.
lstBidPeriods.SelectedValue - возвращаетсвойство «Значение» выбранного экземпляра ListContent - поэтому это строка даты
lstBidPeriods.SelectedIndex - возвращает индекс выбранного элемента в списке.
Таким образом, чтобы получить строку даты, используйте SelectedValue,
if (DateTime.TryParse(lstBidPeriods.SelectedValue.ToString(), out date))
{
...
}
Вот и все.