2011-02-17 50 views
2

我在c#中使用wpf。用以前的细节填写表格并找到清除表格的方法?

问题1:我创建了一个wpf窗口。有没有办法通过按钮点击事件加载以前用户输入的表单字段?

问题2:因此,我加载窗体的字段后,我想创建一个清除按钮来清除窗体的所有字段。有没有办法做到这一点?

谢谢。

编辑1

我目前正在与XML序列化挣扎,试图读取了,但我还是漂亮的丢失。从我知道的我要创建一个新班级,我会在我的应用程序中有一个“保存”按钮和“加载”按钮。我有几个组合框,每个组合框都已被一些XML文件填充。我也有文本框,复选框让他们填满。因此,一旦用户输入表单,我希望让他们“保存”表单条目并能够随时“加载”它们。我还研究了将打开资源管理器为用户探索和保存旧形式的副本,一些目录,但现在我只有这在我的代码filebrowserdialog:

private void SaveButton_Click(object sender, RoutedEventArgs e) 
    { 
     var dialog = new System.Windows.Forms.FolderBrowserDialog(); 
     System.Windows.Forms.DialogResult result = dialog.ShowDialog(); 

    } 

这远不是我目前需要。

我觉得我很迷茫,特别是为组合框值创建新类的部分。请尽可能指导我。如果你可以在文本框和组合框中指导我,也会很感激。谢谢。

这是我如何填充组合框:

public void PopulateDDLFromXMLFile() 
     { 
      DataSet ds = new DataSet(); 
      ds.ReadXml("C:\\GUI\\buildermanageremail.xml"); 


      DataView dv = ds.Tables["builder"].DefaultView; 
      DataView dw = ds.Tables["manager"].DefaultView; 

      dv.Sort = "value"; 

      comboBox1.ItemsSource = dv; //Sets the collection of items from which to populate 
      comboBox2.ItemsSource = dw; 

      comboBox1.DisplayMemberPath = "value"; //Sets the path within an item to use for display 
      comboBox2.DisplayMemberPath = "value"; 
     } 

回答

0

是确保其可能的。你可以每用户条目存储在数据库中或临时文件(序列化),并显示在您的文本框,当你加载表单或如你所说你有一个按钮来做到这一点。它类似于你在标签/文本框或Gridview中的表单上显示数据库数据时通常所做的工作。

但是为了使它工作,您将需要首先保存用户条目。你可以有一个允许用户保存数据的Button,或者你可以在控件的Texthange/LostFocus事件中这样做。

如果你不需要数据是持久的,你可以将它们存储在变量中,并保存在内存中直到应用程序的生命周期。

对于清除表单的示例代码将会像;

foreach(Control ctl in this.Controls) 
{ 
    TextBox tbx = ctl as TextBox; 
    if(tbx != null) 
    { 
     tbx.Text = String.Empty; 
    } 
} 
+0

好的谢谢shekhar_pro。将考虑序列化。 – jeremychan 2011-02-17 01:59:10

0

如果你将所有数据从一个模型对象(使用MVVM到单独的这些层)的所有控件绑定到属性上的模型,那么你可以将模型简单地序列化到一个文件来保存和在负载上反序列化。

一个清晰的按钮可以简单地创建一个模型的新实例,最小的代码来实现这一点。