2016-09-06 6 views
0

저는 xamarin 양식을 사용하여 모바일 응용 프로그램을 작성 중이며 객체 목록이 있습니다. 목록에 행을 추가하고 이것을 사용하여 속성을 올렸습니다. OnPropertyChanged 및 항목을 저장 한 후 객체 속성 목록의 상태를 업데이트하려고합니다. 우리는 상태 속성을 업데이트 할 수있는 방법, 여기 내 코드 예제 코드를 확인하고 저를 업데이트하십시오, 감사합니다 : - :xamarin 양식의 클래스 속성 업데이트

class Test : INotifyPropertyChanged 
    { 
     public int ID { get; set; } 
     public string Name { get; set; } 

     private bool _status; 
     public bool Status 
     { 
      get { return _status; } 
      set 
      { 
       _status = value; 
       RaisePropertyChanged(); 
      } 
     } 

     #region INotifyPropertyChanged implementation 

     public event PropertyChangedEventHandler PropertyChanged; 

     private void RaisePropertyChanged([CallerMemberName]string propertyName = "") 
     { 
      Volatile.Read(ref PropertyChanged)?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
     } 

     #endregion 
    } 

을 그리고 당신은 올바른 한 경우

class Test 
    { 
     public int ID{ get; set; } 
     public string Name { get; set; } 
     public bool Status { get; set; } 
    } 
    class Consume : BaseViewModel 
    { 
     void main() 
     { 
      ObservableCollection<Test> coll = new ObservableCollection<Test>(); 
      coll = await db.GetData(); 

      foreach (var item in coll) 
      { 
       item.Status = true; 
       //How we can update Status property of class 
       OnPropertyChanged("Status"); 
      } 
     } 
    } 

답변

1

Test 클래스 INotifyPropertyChanged 구현 바인딩 후 item.Status = true; UI가이 속성을 변경하게됩니다.

+0

예, 저는 BaseViewModel에서 INotifyPropertyChanged를 구현했습니다. 그래서 ** OnPropertyChanged ("Status"); **이 메서드를 사용하여 속성을 업데이트했지만 상태를 업데이트하지 않았습니다. –

+1

'Test'와'BaseViewModel'은 다른 클래스입니다. 뷰 모델에서 뷰 모델에 배치 된 특성을 업데이트 할 수 있습니다. 'Status'를'Test'에서 갱신하려면'Test' 클래스에'INotifyPropertyChanged'를 구현해야합니다. –

+0

감사합니다. @Egor Gromadskiy –

관련 문제