2011-02-17 52 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到單獨的這些層)的所有控件綁定到屬性上的模型,那麼你可以將模型簡單地序列化到一個文件來保存和在負載上反序列化。

一個清晰的按鈕可以簡單地創建一個模型的新實例,最小的代碼來實現這一點。