用以前的细节填写表格并找到清除表格的方法?

时间:2011-02-17 01:25:13

标签: c# wpf

我在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";
        }

2 个答案:

答案 0 :(得分:0)

确定可能..您可以将每个用户条目存储在数据库或临时文件(序列化)中,并在加载表单时将其显示在文本框中,或者如您所述,您有一个按钮来执行此操作。它类似于在标签/文本框或Gridview中显示表单上数据库时通常所做的操作。

但要使其工作,您需要首先保存用户条目。您可以使用允许用户保存数据的按钮,也可以在控件的Texthange / LostFocus事件中执行此操作。

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

要清除表单,示例代码就像;

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

答案 1 :(得分:0)

如果要将所有数据移出到Model对象(使用MVVM分隔这些图层)将所有控件绑定到模型上的属性,那么您只需将模型序列化为文件即可在加载时保存和反序列化。

清除按钮可以简单地创建模型的新实例,为实现此目的而编写最少的代码。