WPF 양방향 변화의 특성을 결합

  동일을, 프런트의 값을 변경 묶여지고로, 성공적인 바인드 한 배경의 속성을 수정 바인딩으로, 수동으로 화면을 새로 고침 할 필요없이 자동으로 동기화 바인딩 UI 값을 업데이트 할 수 있습니다 후 속성을 바인딩 WPF 종속성 속성은 달성 될 수있다 주어진 속성 값은 양방향 변화의 효과를 달성하기 위해, UI 획득 값을 변경할 수있다. 바인딩 속성은 UI 업데이트가 사용 된 설명 방법에 따라 작은 밤나무를 공유하는 매우 쉽게 할 수 있습니다.

하나는 TextBlock에와 버튼의 UI를 가지고 선택, TextBlock이는 클릭 후 변화를 달성하고자합니다.

<윈도우 X : 종류 = " WPFDemo.Window1 " 
        의 xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation " 
        의 xmlns : X = " http://schemas.microsoft.com/winfx/2006 / XAML " 
        의 xmlns : d = " http://schemas.microsoft.com/expression/blend/2008 " 
        의 xmlns : MC = " http://schemas.openxmlformats.org/markup-compatibility/2006 " 
        의 xmlns : 로컬 = " CLR 네임 스페이스 : WPFDemo " 
        MC : 무시 가능한 = " D "
        표제= " 번째 윈도 " 높이 = " 300 " 너비 = " 300 " > 
    
    <그리드> 
        <버튼 이름 = " Button_OK " 최대 너비 = " 50 " = MaxHeight입니다 " 20 " 클릭 = " Button_OK_Click " > 확인 </ 버튼> 
        <TextBlock의 최대 너비 = " 50 " MaxHeight입니다 = " 20 " VerticalAlignment = " 최고 "  HorizontalAlignment로 = " 왼쪽 "텍스트 = " {바인딩 텍스트} " > </ TextBlock에> 
    </ 그리드> 
</ 창>

 

도 2를 참조하면, UI 업데이트 클래스 생성 (현재 테스트를, 그래서 속성, 권장 업데이트 UI의 UI의 정상적인 개발은 UI 업데이트를위한 특별한 클래스를 만드는 상대적으로 작다), 다음은 전체 코드입니다

공공  클래스 PropertyToUI 다음에서 INotifyPropertyChanged 
    { 
        # 지역 민간 변수 /// <요약> /// 상태 표시 줄 텍스트 표시
         /// </ 요약> 개인 문자열 텍스트 = "" ; #endregion # 지역 특성을 /// <요약> // / - 속성 표시 텍스트
         /// </ 요약> 공공 문자열 텍스트 
        { GET { 반환 텍스트;}
             SET를 
            { 
                텍스트 = 값;
              
         
         
         

        

        
              
         
         
         
              
                합니다 (OnPropertyChanged를을 " 텍스트 " ); 
            } 
        } 

        #endregion의 

        # 지역 속성 변경 알림 이벤트 /// <요약> /// 속성 변경 알림 이벤트
         /// </ 요약> 공공 이벤트 PropertyChangedEventHandler하여 PropertyChanged; /// <요약> // / 변경 통지 속성
         /// </ 요약> /// <PARAM NAME = "E"> </ PARAM> 공중 공극 OnPropertyChanged를 (PropertyChangedEventArgs E) 
        { IF (하여 PropertyChanged! = null의 ) 
            {
        
         
         
         

         
         
         
         
             
                하여 PropertyChanged ( 이 본 , E);
            } 
        } 

        ///  <요약> 
        /// 属性变化通知事件
         ///  </ 요약> 
        ///  <PARAM NAME = "PROPERTYNAME"> </ PARAM> 
        공공  무효 OnPropertyChanged를 ( 문자열 PROPERTYNAME) 
        { 
            PropertyChangedEventArgs 전자 = 새로운 PropertyChangedEventArgs (PROPERTYNAME);
            경우 (하여 PropertyChanged =! ) 
            { 
                하여 PropertyChanged ( , E); 
            } 
        } 

        #endregion 
    }

이 섹션에서는 다음과 같은 주요 사항이 있습니다 :

(1), 속성 업데이트 인터페이스에서 INotifyPropertyChanged 인터페이스를 구현해야합니다, 당신은 그 구현 볼 수 있으므로 이벤트를 선언 할 말을하고, 등록 정보 업데이트 이벤트가있다.

네임 스페이스 System.ComponentModel 
{ 
    // 
    // 摘要:
     //      속성 값이 변경되었음을 고객에게 통지합니다. 
    공용  인터페이스 에서 INotifyPropertyChanged 
    { 
        //은 
        // 摘要:
         //      발생은 속성 값이 변경되면. 
        이벤트 PropertyChangedEventHandler하여 PropertyChanged; 
    } 
}

(2) 등록 정보 갱신 기능을 만들

     ///  <요약> 
        /// 属性变化通知
         ///  </ 요약> 
        ///  <PARAM NAME = "E"> </ PARAM> 
        공공  무효 OnPropertyChanged를 (PropertyChangedEventArgs 전자) 
        { 
            경우 (하여 PropertyChanged! = null이 ) 
            { 
                (하여 PropertyChanged , E); 
            } 
        }

속성의 매개 변수 갱신 이벤트는, 다음하여 PropertyChanged (이 전자)을 트리거하는 UI 업데이트를 지정된 속성을 통지

(3) 포장의 속성

    공공  문자열 텍스트 
{
얻을 { 반환 텍스트를; } 설정 { 텍스트 = 값; OnPropertyChanged를 ( " 텍스트 " ); } }

속성과 정체성 이벤트 (배경 (당신은 UI 값을 업데이트 할)에서 설정 한 값이,이, 업데이트 이벤트 속성을 트리거 프론트 데스크 바인딩 종속성 속성을 통지합니다 때를 업데이트하고, 속성 세터 업데이트 이벤트를 호출 값)에 전달된다.

 

3, 프로퍼티의 갱신 클래스에 프런트 데스크 종속성 속성 바인딩 속성 (바인딩 문법)

<TextBlock의 최대 너비 = " 50 " 은 MaxHeight = " 20 " VerticalAlignment = " 상위 "   HorizontalAlignment로 = " 왼쪽 " 텍스트 = " {} 바인딩 텍스트 " > </ TextBlock이>

속성 이름에 바인딩

 

4 (여기서 잊지 비교적 용이 한) 데이터 소스의 결합

인터페이스 = PropertyToUI 새로운 새 PropertyToUI는 ()
 이 본 .DataContext은 UI를 =;   // 이벤트 데이터 소스를 결합

문제는 기본적으로 성공, 다시는 성공적으로 확인하지하는 경우 이러한 바인딩 속성을하는 데 필요한 단계이며,.

 

다음은 뒤에있는 전체 코드입니다 :

///  <요약> 
    /// Window1.xaml 상호 작용 로직
     ///  </ 요약> 
    공용  부분  클래스 번째 윈도 : 창 
    { 

        ///  <요약> 
        /// 인터페이스 클래스 오브젝트를 갱신
         ///  </ 요약> 
        PropertyToUI = 인터페이스 새로운 새 PropertyToUI (); 

        ///  <요약> 
        /// 생성자
         ///  </ 요약> 
        공중 번째 윈도 () 
        { 
            의 InitializeComponent는 () 

            이 본 .DataContext은 UI를 =;   // 이벤트 데이터 소스 바인딩 

            UI.Text을 = " 진행 "; 
        } 

        ///  <요약> 
        /// OK 버튼 클릭 이벤트
         ///  </ 요약> 
        ///  <PARAM NAME = "SENDER"> </ PARAM> 
        ///  <PARAM NAME = "E"> </ PARAM> 
        개인  무효 Button_OK_Click ( 개체 SENDER의 RoutedEventArgs E) 
        { 
            UI.Text = " 나는 업데이트 " ; 
            MessageBox.Show (UI.Text); 
        } 
       
    }

 

다음과 같은 영업 실적은 다음과 같습니다 :

 

확인 버튼을 클릭합니다 :

 

추천

출처www.cnblogs.com/xiaomengshan/p/11564368.html