2013-12-23 2 views
0

실행은 내가 가진 내보기에서내 뷰 모델에서

private MyType item; 
public MyType Item 
{ 
    get { return item; } 
    set { 
      if(item == null) 
      return; 
      item = value; 
      OnPropertyChanged(()=>Item); 
     } 
} 

을 :

<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Path=Item.Name, UpdateSourceTrigger=PropertyChanged}" /> 

텍스트 상자에 입력하는 동안 항목의 설정 트리거 할 수있는 가능성이 있습니까? 아니면 클래스의 모든 필드에 대해 Property를 작성해야합니까?

답변

0

만, 전체 오브젝트 변화 없음 "이름"통지 MyType의 "명칭"속성의 set 블록의 특정 매개 변수를 추가 OnPropertyChanged() 고려한다.

0

예컨대

private string _name; 
public string Name 
{ 
    get { return _name; } 
} 
{ 
    set 
    { 
     _name = value; 
     OnPropertyChanged(); 
     OnPropertyChanged("Item"); 
    } 
} 

private MyType item; 
public MyType Item 
{ 
    get { return item; } 
    set { 
      if(item == null) 
      return; 
      item = value; 
      OnPropertyChanged(()=>Item); 
     } 
} 
0

무슨 짓을 한 것은합니다 MyType의 주소가이 유형에 속성을하지 않은 변경하는 경우에만 통지하는 것입니다. 따라서 유형의 속성에서 변경 사항을 알림으로 변경해야하는 경우 해당 속성은 onpropertychanged 이벤트를 명시 적으로 throw해야합니다.