У меня есть агрегированные модели, такие как Customer: Order: Product.MVVM/WPF: использование ObservableCollection <T> как список в модели домена, является ли это хорошим/плохим?
Как мой взгляд, связан с BillingViewModel, который имеет свойство Клиентов типа ObservableCollection
и один клиент в этой коллекции есть «список» заказы имени ObservableCollection
и один заказ в этой коллекции имеет «список» продуктов с именем ObservableCollection
Ну, мне нужна команда ObservableCollection `для привязки данных, но должна ли модель домена иметь ObservableCollection? обычно он имеет
Список или IEnumerable!
Является ли эта плохая привычка или имеет побочные эффекты?
прилагает объяснение к вышесказанному, что правильно:
class Customer
{
int CustomerID {get;set;}
ObservableCollection<Order> { get;set;}
}
class BillingViewModel
{
ObservableCollection<Customer> _customers;
public BillingViewModel()
{
Customers= GetAggregatedCustomersOrdersProductsFromRepository();
}
public ObservableCollection<Customer> Customers
{
get{ return _customers;}
set
{
_customers = value;
this.RaisePropertyChanged("Customers");
}
}
}
Я надеюсь, что его более ясным сейчас У меня есть ObservableCollection в моей модели ViewModel и Model!
нет логики. Я просто добавляю заказ в представлении и в моем BillingViewModel добавлен CurrentOrder в SelectedCustomer, например SelectedCustomer.Orders.Add (CurrentOrder); , тогда мой DataGrid с ордерами немедленно обновляется. Использование списка Нет обновлений в представлении:/ Итак, что я могу сделать о плохой форме, которую вы говорите ...? –
msfanboy
Если ваш BillingViewModel использует ObservableCollection, то ничего не получается. Только если ваши объекты, которые не взаимодействуют с представлением, имеют в них плохую форму. – Tejs
ах, ты меня неправильно понял! Я обновил свой первый пост выше! – msfanboy