2012-12-13 4 views
1

내 ViewModel에는 모델 모음이 있습니다. 나는이 점에 관해서 몇 가지 질문을한다.모델 및 ViewModel로 INotifyPropertyChanged

1 - 모델의 속성이보기에서 수정 될 때 INotifyPropertyChanged 인터페이스 만 ViewModel에 구현하는 경우 모델에 알리는 방법은 무엇입니까? Model과 ViewModel 모두에서 인터페이스를 구현해야합니까?

2 - ViewModel에서 LINQ를 사용하려면 List<T>으로 모델 모음을 만들어야합니다. ObservableCollection 일 수 있습니까? 그렇습니다.

3 - 데이터베이스는 어디에 사용해야합니까? ViewModel 또는 다른 장소에서? 예를 들어보기에 인스턴스를 추가하고 데이터베이스에 추가하려면 LINQ 명령을 어디에 삽입해야합니까?

감사합니다.

+0

하나씩 질문을 나열 할 수 있습니다. – Tilak

답변

3
  1. 당신이보기에 수정중인 모델의 인스턴스 인해 데이터 바인딩에 자동으로 업데이트됩니다. (난 당신이 요구하고 정확하게 무엇을 이해 바랍니다)

  2. Linq는이 인스턴스에서 실행할 수 있습니다

  3. IEnumerable, IQueryable을 구현하는 타입. ObservableCollection에서 Linq를 사용할 수 있습니다.

  4. CRUD 작업을 처리하는 비즈니스 계층이 있어야하며 필요에 따라 ViewModels에서 호출해야합니다.

+0

안녕하세요 @ dutzu, 답장을 보내 주셔서 감사합니다! 첫 번째 질문은 뷰 모델에 모델 모음 만 포함되어있는 경우입니다. INotifyPropertyChanged 인터페이스를 구현해야합니까? ObservableCollection에는 이미이 인터페이스가 구현되어 있습니다. 컬렉션이 목록 인 경우 목록을 변경하면 인터페이스가 구현되어 viewmodel에 알립니다. 그러나 모델의 속성 만 변경되면 목록이 변경되지 않고 viewmodel에 알립니다. – James

+0

뷰 모델에 목록이있는 경우 알림 이벤트는 인스턴스 자체가 변경된 경우에만 트리거됩니다. 하지만 컬렉션의 내용이 변경된 경우 알림을 보내려면 ObservableCollection을 사용하십시오. 두 번째로 컬렉션에있는 모델 인스턴스의 속성이 변경되었다고 뷰에 알릴 필요가있는 경우 -이 모델은 INotifyPropertyChanged를 구현해야만 작동합니다. – dutzu

관련 문제