zoukankan      html  css  js  c++  java
  • C# 实验感悟WPF

    实验程序:todolist

    本次博客主要记录实验程序开发过程。

     1 public void Save()
     2         {
     3             System.Text.StringBuilder report = new System.Text.StringBuilder();
     4             foreach (Task toDoItem in taskList)
     5             {
     6                 report.Append(toDoItem.TaskTitle.ToString() + "	" + toDoItem.TaskDescription.ToString() + "	" + toDoItem.TaskDueDate.ToString() + "	" + toDoItem.TaskPriority.ToString() + "	" + toDoItem.CreationDate.ToString() + "	" + toDoItem.IsTaskComplete.ToString() + "
    ");
     7             }
     8 
     9             Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
    10             dlg.FileName = "ToDoList"; // Default file name
    11             dlg.DefaultExt = ".txt"; // Default file extension
    12             dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension
    13 
    14             // Show save file dialog box
    15             Nullable<bool> result = dlg.ShowDialog();
    16 
    17             // Process save file dialog box results
    18             if (result == true)
    19             {
    20                 // Save document
    21                 File.WriteAllText(dlg.FileName, report.ToString());
    22             }
    23         }//End Save()

    上述代码主要实现将数据保存成TXT格式,存在本地文件下。

    public void Load()
            {
                taskList.Clear();
    
                Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.FileName = "ToDoList"; // Default file name
                dlg.DefaultExt = ".txt"; // Default file extension
                dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension 
    
                // Show open file dialog box
                Nullable<bool> result = dlg.ShowDialog();
    
                // Process open file dialog box results 
                if (result == true)
                {
                    //Open document 
                    System.IO.StreamReader myFile = new System.IO.StreamReader(@dlg.FileName);
                    int lineCount = 0;
                    using (var reader = File.OpenText(@dlg.FileName))
                    {
                        while (reader.ReadLine() != null)
                        {
                            lineCount++;
                        }
                    }
    
                    for (int i = 1; i <= lineCount; i++)
                    {
                        string myString = myFile.ReadLine();
                        string[] obj = myString.Split('	');
                        taskList.Add(new Task { TaskTitle = obj[0].ToString(), TaskDescription = obj[1].ToString(), TaskDueDate = obj[2].ToString(), TaskPriority = obj[3].ToString(), CreationDate = obj[4], IsTaskComplete = Convert.ToBoolean(obj[5]) });
                    }//End for loop
    
                }//End statement
    
            } // end public bool Load()

    对应的,从程序中读取与之绑定的本地数据。

    前台界面设计如下

    其中捕捉事件的button代码如下

     1  private void addTask_Click(object sender, RoutedEventArgs e)
     2         {
     3             if (!taskTitleTextBox.Text.Equals(string.Empty) && !descriptionTextBox.Text.Equals(string.Empty) && !dateField.Text.Equals(string.Empty) && !priorityDropBox.Text.Equals(string.Empty))
     4             {
     5                 toDo.addItem(taskTitleTextBox.Text, descriptionTextBox.Text, dateField.Text, priorityDropBox.Text);
     6                 toDoListView.Items.Refresh();
     7                 ChangeUIState(UIState.AddState);
     8                 isProgramSaved = false;
     9             }
    10             else
    11             {
    12                 MessageBox.Show("Make sure all fields are filled in!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
    13             }
    14         }

    其中包括对于任务时间 优先级 题目 及描述的填写判定

    若全部填写则将数据添加进TEXT 若任何一项未填写 则返回error

    相对来说 前台界面设计略简便于后台程序开发。

  • 相关阅读:
    【HDOJ】2774 Shuffle
    【POJ】2170 Lattice Animals
    【POJ】1084 Square Destroyer
    【POJ】3523 The Morning after Halloween
    【POJ】3134 Power Calculus
    【Latex】如何在Latex中插入伪代码 —— clrscode3e
    【HDOJ】4801 Pocket Cube 的几种解法和优化
    【HDOJ】4080 Stammering Aliens
    【HDOJ】1800 Flying to the Mars
    SQL语法
  • 原文地址:https://www.cnblogs.com/yi-jie/p/4511626.html
Copyright © 2011-2022 走看看