/// <summary>Dodaje element do ListView.</summary> /// <param name="elem">Element do dodania.</param> /// <remarks>Nie dodaje wpisu, jeśli istnieje identyczny.</remarks> private void AddToListView(Expense elem) { Func<object, object> filter = i => (i as ListViewItem).GetExpense() == elem ? elem : null; object o = this.listView.Items.GetItem(filter); //jesli w kolekcji elem juz jest if(o != null) return; string[] list = new string[4] { elem.date.ToString("dd-MM-yyyy"), elem.value.ToString("#,##0.00zł;-#,##0.00zł;0.00zł"), elem.category, elem.description }; ListViewItem item = new ListViewItem(list); item.SetExpense(elem); int index; for(index = 0; index < this.listView.Items.Count; index++) { ListViewItem i = this.listView.Items[index]; if(i.GetExpense().date.CompareTo(item.GetExpense().date) > 0) break; } this.listView.Items.Insert(index, item); }