加入同一个项目中观察到的集合我有以下几点:避免使用C#
ObservableCollection<dateListModel> model = new ObservableCollection<dateListModel>();
public class dateListModel
{
public string dateSelected { get; set; }
public string requestFor { get; set; }
public int id { get; set; }
public string weekDay { get; set; }
}
添加项目使用下面的代码的ObservableCollection:
public void onAddClicked(object sender, EventArgs e)
{
try
{
if (model.Any (p =>string.Format("{0:yyyy-MM-dd}", p.dateSelected.ToString())==string.Format ("{0:yyyy-MM-dd}",myDatePicker.Date.ToString()) == false))
{
model.Add (new dateListModel {
dateSelected = string.Format("{0:yyyy-MM-dd}", myDatePicker.Date),
requestFor = requestFor.Items [requestFor.SelectedIndex],
id = 1,
weekDay = myDatePicker.Date.DayOfWeek.ToString()
});
listview_MenuItem.ItemsSource = model;
}
else
DisplayAlert ("Alert", "Already Exist!", "OK");
}
catch(Exception ex)
{
DisplayAlert ("Alert",ex.ToString(),"OK");
}
}
但是当我点击添加按钮,它显示“已存在“消息甚至模型是空的。任何如何在模型中添加项目并尝试再次添加相同的项目,它允许添加ObservableCollection。我不想在我的模型中再次添加相同的日期。我错在哪里?
我用过:if(!model.Any(p => p.dateSelected.date == myDatePicker.Date.ToString()))。它不工作。为了在代码上面工作,DatePicker的日期格式应该是什么? – Dipak
如果使用'.Date',则日期格式无关紧要。因此,从'myDatePicker.Date.ToString()'中移除'.ToString()'并尝试。此外,我有一个错字,它应该是'p.dateSelected.Date'而不是'p.dateSelected.date' –
嗨,谢谢。我用:if(!model.Any(p => Convert.ToDateTime(p.dateSelected.date)== myDatePicker.Date))。工作得很好。 – Dipak