Наблюдаемая коллекция внутри видимой коллекции.Как отобразить оба или только детский? - PullRequest
0 голосов
/ 03 декабря 2018

Цените ваше время, читая мой вопрос.

Я разрабатываю настольное приложение для Windows с использованием WPF, C #, sqlite3 и nhibernate.Я пытаюсь использовать шаблон MVVM.В моей модели у меня есть класс безопасности и торговый класс.К ценной бумаге может быть прикреплено несколько сделок, но сделка может быть привязана только к одной ценной бумаге.Я должен отобразить все сделки в таблице данных на одной странице WPF, а также отобразить все ценные бумаги с детализацией их сделок на другой странице (например, для каждой ценной бумаги при нажатии будет отображаться знак «+», показывающий сделки для этой ценной бумаги).).

//model
public class Security
{
   private decimal _securityid;
   private string _name;
   private ObservableCollection<Trade> _tradelist;

   public Security() {}

   <<public get set for all the 3 properties above>>

}

public class Trade
{
   private decimal _tradeid;
   private decimal _securityid;
   private string _side;
   private decimal _quantity;

   public Trade (){}

   <<public get set for all the properties above>>
}

//viewmodel

public class SecurityVM
{
   private ObservableCollection<Security> _securityList;

   public ObservableCollection<Security> SecurityList
   {
      get {return _securityList;}
      set {_securityList = value;}
   }

   public SecurityVM()
   {
      //get data from database into the security list object. Since the mapping between the security and trade is set in nhibernate
      //it also get the trades associated with each security and populates the trades for each line
      _securityList = new ObservableCollection<Security>(GetAllSecurities());

   }
}

public class TradeVM
{
   private ObservableCollection<Trade> _tradeList;

   public ObservableCollection<Trade> TradeList
   {
      get {return _tradeList;}
      set {_tradeList = value;}
   }

   public TradeVM()
   {
      //getting all the trades from the database to display them independently.
      _tradeList = new ObservableCollection<Security>(GetAllTrades));
   }
}

Так что теперь у меня есть 2 xaml страницы.Один отображает список сделок, а другой - список ценных бумаг с возможностью расширения каждой ценной бумаги для просмотра сделок по ней.Когда я вставляю дополнительные сделки из внешнего интерфейса в базу данных, я вызываю метод для заполнения наблюдаемой коллекции сделок, и страница сделок обновляется дополнительными сделками.Как можно автоматически обновлять сделки, которые отображаются для каждой ценной бумаги?Я не в состоянии понять это.Любая помощь будет очень признательна.

Еще раз спасибо за ваше время

С уважением

...