2010-12-08 55 views
2

ok。我有一個關於在UI中使用我的數據模型的問題。問題是與Windows窗體。 在表現層,我設置我的數據模型等於其相關的texboxes,標籤..等,但所有的時間我的數據模型正在改變,我也必須手動更新用戶界面。同樣的事情再次發生時,我改變了一些值在文本框或UI中的其他東西,我不得不手動更新我的數據模型也。Windows應用程序中的模型視圖控件問題

沒有辦法,更好的方法來設置它自動發生?當我改變數據模型時,UI也會相應地改變?也當我更改UI中的值時,數據模型也會自動更新?

問候,

-Kushan-

回答

2

您可以使用Data Binding Windows窗體中實現你後會是什麼。有不同數量的樣品here

下面的樣品是單Form具有兩個TextBox(textBox1中,TextBox2中)就可以控制和一個Button(按鈕1)。如果您在textbox2中添加新名稱並單擊button1,它將設置Person.FirstName屬性中的屬性,該屬性將傳播到textBox1,因爲它已被數據綁定,如Form1的ctor中所示。

public partial class Form1 : Form 
    { 
     Person _person = new Person(); 

     public Form1() 
     { 
      InitializeComponent(); 

      textBox1.DataBindings.Add(new Binding("Text", _person, "FirstName")); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      _person.FirstName = textBox2.Text; 
     } 
    } 

    public class Person : INotifyPropertyChanged 
    { 
     private String _firstName = "Aaron"; 
     public String FirstName 
     { 
      get 
      { 
       return _firstName; 
      } 
      set 
      { 
       _firstName = value; 
       PropertyChangedEventHandler handler = PropertyChanged; 
       if(handler != null) 
        handler(this, new PropertyChangedEventArgs("FirstName")); 
      } 
     } 

     #region INotifyPropertyChanged Members 

     public event PropertyChangedEventHandler PropertyChanged; 

     #endregion 
    } 

    [1]: http://msdn.microsoft.com/en-us/library/ef2xyb33.aspx 
+0

感謝您的迴應。你可以請給我一些DataBinding的代碼示例?是一個非常小的例子,包括關鍵點?我以前試過這個。但仍然無法按需要使用它。 – Sency 2010-12-08 19:35:19

相關問題