Tôi chưa bao giờ sử dụng MVVM trước đây, vì vậy tôi có thể thiếu một cái gì đó hiển nhiên. Khi tôi tạo một ứng dụng Panorama mới, đã có một thư mục ViewModel chứa ItemViewModel và MainViewModel.MVVM - Sự khác biệt giữa Model và ViewModel
Tôi nghĩ "MainViewModel.cs" là tệp sắp xếp ảnh toàn cảnh. Tuy nhiên, trong MainViewModel, dòng này có dòng này:
public MainViewModel()
{
this.Items = new ObservableCollection<ItemViewModel>();
}
ItemViewModel không tương tác với ảnh toàn cảnh. Đây là những sau đó instantiated như thế này:
this.Items.Add(new ItemViewModel()
{ LineOne = "first line", LineTwo = "second line", LineThree = "third line" });
Tại sao ItemViewModel chỉ là một 'mô hình'? Nó thực hiện INotifyPropertyChanged, nhưng cho mục đích gì? Tôi xin đã nghĩ rằng ObservableCollection trong MainViewModel sẽ là đủ để thông báo cho bất kỳ thay đổi, như demonstrated here
nhờ
Vì vậy, ví dụ: nếu khía cạnh thay đổi thuộc tính không liên quan đến ItemViewModel, sẽ có ý nghĩa khi 'xuống hạng' để chỉ đơn giản là 'Mô hình'? – Brap
Tôi không nghĩ bạn đạt được nhiều thứ bằng cách làm điều đó. Để nó như một ViewModel, và chỉ gọi trình xử lý sự kiện cho những mục mà bạn cần. Bằng cách đó, bạn được chuẩn bị cho sự kiện mà bạn sẽ cần phải thực hiện thông báo. – Robaticus