2013-04-24 2 views
0

두 개의 레이블, 즉 하나는 헤더로 사용하고 다른 하나는 데이터 소스에 Me.usercontrol1.databindings.add()을 통해 바인딩해야하는 winform 앱용 usercontrol을 만듭니다. 나는 usercontrol 디자인의 초심자이기 때문에 인터넷에서 내 제어를 위해 데이터 바인딩을 만드는 방법을 찾았다. 내가 ControlBindingsCollection을 사용해야한다는 것을 깨달았지만, 정확히 어떻게 모르는 지요.winform usercontrol의 레이블에 대한 데이터 바인딩

나는 다음과 같은 코드를 발견하고 내 UserControl을 추가 :

Private bindingContext_ As BindingContext 
Private dataBindings_ As ControlBindingsCollection 
Public Overrides Property BindingContext() As BindingContext 
    Get 
     If bindingContext_ Is Nothing Then 
      bindingContext_ = New BindingContext() 
     End If 
     Return bindingContext_ 
    End Get 
    Set(ByVal value As BindingContext) 
     bindingContext_ = value 
    End Set 
End Property 
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _ 
Public Overloads ReadOnly Property DataBindings() As ControlBindingsCollection 
    Get 
     If dataBindings_ Is Nothing Then 
      dataBindings_ = New ControlBindingsCollection(Me) 
     End If 
     Return dataBindings_ 
    End Get 
End Property 

가 지금은 usercontrol1.databindings 매개 변수를 설정할 수 있지만 뭔가가 누락 분명히 거기에 나는이 내 UserControl을에 label2.Text에 바인딩에서 하나의 반환 값을 연결해야하기 때문에 나는 어떻게 해야할지 모르겠다.

내 문제를 해결할 수있는 사람이 있습니까?

미리 감사드립니다.

답변

1

이 작업을 수행하는 데 질문에 코드가 필요하다고 생각하지 않습니다.

사용하는 속성을 만드는 시도 당신의 UserControl을에서 두 번째 레이블 :

Property LabelData As String 
    Get 
    Return Label2.Text 
    End Get 
    Set(value As String) 
    Label2.Text = value 
    End Set 
End Property 

그런 다음 데이터 바인딩 그냥 속성에 매핑 :

myUC.DataBindings.Add("LabelData", testObject, "Text", False, _ 
         DataSourceUpdateMode.OnPropertyChanged) 

testObject가있다 단순한 클래스 객체입니다 이 예제에서는 INotifyPropertyChanged 인터페이스를 구현하는 Text 속성입니다.

관련 문제