加入同一個項目中觀察到的集合我有以下幾點:避免使用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