2011-02-28 51 views
0

是否可以創建綁定到變量或屬性的文本框或其他控件? 我想要一個控件,它將顯示控件的當前值,並在控件更改時使用新值更新變量。創建綁定到變量的控件

有沒有一些控制我可以下載,已經有這個?

回答

1

DataBindings會成爲您的需求嗎?將控件綁定到一個屬性:

myTextbox.databindings.add("text", classWithProperty, "propertyName") 

這就是我在VB.NET中做的,但我有點生疏。

編輯:

我相信你需要執行INotifyPropertyChanged的值更新:

Public Class YourClassWithProperty 
Implements INotifyPropertyChanged 

然後做一個函數:

Public Sub OnPropertyChanged(ByVal name As String) 
    RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name)) 
End Sub 

後,調用該函數在你的財產的「設置」區域:

例如:

個 從MSDN採取
Public Property Name() As String 
    Get 
     Return personName 
    End Get 
    Set(ByVal value As String) 
     personName = value 

     OnPropertyChanged("Name") 
    End Set 
End Property 

例子:http://msdn.microsoft.com/en-us/library/ms743695.aspx

+0

這很好。但是,如果該值在控件外部更新,則控件不會顯示新值。 – 2011-02-28 15:56:34

+0

我認爲你必須實現INotifyPropertyChange來更新它。它位於msdn上http://msdn.microsoft.com/en-us/library/ms743695.aspx 在屬性的設置區域中調用它。 – Shane 2011-02-28 16:03:49

+0

我不得不將下面的代碼行添加到具有該屬性的類中以使其起作用。否則,謝謝! 'Public Event PropertyChanged(ByVal sender As Object,ByVal e As System.ComponentModel.PropertyChangedEventArgs)Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged' – 2011-03-01 15:41:49

0

創建一個簡單的文本框,添加一個事件例如'onLostFocus'並在那裏更新你的變量。

+0

但不知何故,我綁定到控制一個變量,因此我沒有寫,對於每個控制? – 2011-02-28 14:30:56

+0

看看這篇文章http://www.c-sharpcorner.com/Blogs/BlogDetail.aspx?BlogId=581,讓我知道如果它是有用的,請 – JAiro 2011-02-28 14:33:46

+0

或這,如果您使用winforms :) http:///msmvps.com/blogs/deborahk/archive/2009/09/16/binding-control-properties-to-business-object-properties.aspx – JAiro 2011-02-28 14:34:32