// 当前列表的选中记录发生变化 private void listView_log_SelectedIndexChanged(object sender, EventArgs e) { if (this.listView_log.SelectedItems.Count > 0) { this._currentListViewItem = this.listView_log.SelectedItems[0]; this._currentID = this._currentListViewItem.Text; NoteItem item = this._noteManager.Get(this._currentID); // 将信息设到输入控件上 this.SetControlInfo(item); //编辑与删除按钮可用 this.button_edit.Enabled = true; this.button_delete.Enabled = true; //this.button_add.Enabled = false; } else { this._currentListViewItem = null; this._currentID = ""; // 编辑与删除按钮不可用 this.button_edit.Enabled = false; this.button_delete.Enabled = false; //this.button_add.Enabled = true; // 清空控件 this.ClearControl(); } }
/* * <root> * <note> * <id>123</id> * <title>test</title> * <catalog/> * <level/> * <content/> * <updateTime/> * </note> * <note>...</note> * </root> */ private void ParseXml(XmlDocument dom) { XmlNode root = dom.DocumentElement; XmlNodeList noteList = root.SelectNodes("note"); foreach (XmlNode node in noteList) { string id = DomUtil.GetElementText(node, "id"); string title = DomUtil.GetElementText(node, "title"); string catalog = DomUtil.GetElementText(node, "catalog"); string level = DomUtil.GetElementText(node, "level"); string content = DomUtil.GetElementText(node, "content"); string updateTime = DomUtil.GetElementText(node, "updateTime"); // 创建NoteItem对象 NoteItem item = new NoteItem() { ID = id, Title = title, Catalog = catalog, Level = level, Content = content, UpdateTime = updateTime, }; // 加到集合中 this.Notes.Add(item); } }
//删除事项 public void Delete(string id) { NoteItem item = this.Get(id); if (item != null) { // 从集合中移除 this.Notes.Remove(item); } }
// 根据内存对象设置界面信息 private void SetControlInfo(NoteItem item) { if (item == null) { return; } this._currentID = item.ID; this.textBox_title.Text = item.Title; this.textBox_catalog.Text = item.Catalog; this.comboBox_level.Text = item.Level; this.textBox_content.Text = item.Content; this.textBox_updateTime.Text = item.UpdateTime; }
// 新增事项 public void Add(NoteItem item) { Debug.Assert(item != null, "item参数不能为null"); NoteItem temp = this.Get(item.ID); if (temp != null) { throw new Exception("id为[" + item.ID + "]的事项已经存在."); } // 加到集合中 this.Notes.Add(item); }
// 将内存对象NoteItem加到界面列表中 private void AddToListView(NoteItem note) { //给界面的listview填加一行 ListViewItem item = new ListViewItem(); item.Text = note.ID; item.SubItems.Add(note.Title); item.SubItems.Add(note.Catalog); item.SubItems.Add(note.Level); item.SubItems.Add(note.UpdateTime); item.SubItems.Add(note.Content); this.listView_log.BeginUpdate(); this.listView_log.Items.Add(item); this.listView_log.Items[this.listView_log.Items.Count - 1].EnsureVisible();//滚动到最后 this.listView_log.EndUpdate(); }
// 编辑事项 public void Edit(NoteItem item) { Debug.Assert(item != null, "item参数不能为null"); NoteItem oldItem = this.Get(item.ID); if (oldItem == null) { throw new Exception("id为[" + item.ID + "]的事项不存在."); } // 更新内存中的数据 oldItem.Title = item.Title; oldItem.Catalog = item.Catalog; oldItem.Level = item.Level; oldItem.Content = item.Content; oldItem.UpdateTime = item.UpdateTime; }
//编辑 private void Edit() { if (string.IsNullOrEmpty(this._currentID) == false) { NoteItem note = this.CreateNoteItem(false); this._noteManager.Edit(note); // 更新listview当前记录 this._currentListViewItem.SubItems.Clear(); ListViewItem item = this._currentListViewItem; item.Text = note.ID; item.SubItems.Add(note.Title); item.SubItems.Add(note.Catalog); item.SubItems.Add(note.Level); item.SubItems.Add(note.UpdateTime); item.SubItems.Add(note.Content); // 清空控件 this.ClearControl(); } }
// 根据界面输入的信息创建一个NoteItem对象 private NoteItem CreateNoteItem(bool bNew) { string id = ""; if (bNew == true) { id = Guid.NewGuid().ToString(); } else { id = this._currentID; } string title = this.textBox_title.Text.Trim(); if (title == "") { MessageBox.Show(this, "尚未输入标题"); return(null); } string catalog = this.textBox_catalog.Text.Trim(); string level = this.comboBox_level.Text; string content = this.textBox_content.Text.Trim(); string updateTime = GetNowTime(); NoteItem note = new NoteItem() { ID = id, Title = title, Level = level, Catalog = catalog, Content = content, UpdateTime = updateTime, }; return(note); }
// 新增按钮,点击事件 private void button_add_Click(object sender, EventArgs e) { NoteItem note = this.CreateNoteItem(true); if (note == null) { return; } //// 清空当前记录 this._currentID = ""; this._currentListViewItem = null; this.button_delete.Enabled = false; this.button_edit.Enabled = false; // 给内存集合增加一条记录 this._noteManager.Add(note); //给界面的listview填加一行 this.AddToListView(note); // 清空控件 this.ClearControl(); }