WPF Привязка данных: как организовать проекты и классы в решении? - PullRequest
0 голосов
/ 23 ноября 2010

В моем решении есть следующие проекты / сборки:

  1. Сущность ; Это библиотека классов, которая содержит два класса: Account и AccountDetail. Класс Account имеет свойство Details, которое имеет тип ObservableCollection<AccountDetail>, и я использую его для хранения сведений об объекте учетной записи.
  2. Основной ; Это библиотека классов, которая содержит один класс: AccountController, целью которого является получение данных с сервера Sql и заполнение объектов Account (вместе с коллекцией AccountDetail внутри них).
  3. Gui ; Это проект приложения WPF, который содержит одну форму WPF с именем: AccountsWindow, целью которой является представление списка всех учетных записей, полученных с сервера Sql
  4. Gui.Controller ; Это библиотека классов, которая содержит один класс: AccountWindowController, который должен быть "мостом" между AccountController из сборки Core и AccountsWindow из сборки Gui и для помощи с данными связывание. (Я не уверен, нужна ли мне эта сборка вообще.)

Вот что я хочу сделать:

Я хочу получить все учетные записи с сервера Sql, используя класс AccountController из сборки Core, и поместить их в некоторый список. Затем я хочу связать данные со списком в AccountWindow с этим списком учетных записей.

Мои вопросы:

  1. Где мне разместить этот список учетных записей, в AccountWindowController или где-то еще?
  2. Должен ли этот список иметь тип ObservableCollection?
  3. Нужен ли вообще этот список учетных записей?
  4. При привязке данных я должен создать Window.Resource из Gui.Controller или Entities классы?

Я знаю, что это много текста для чтения, но мои вопросы очень просты, так как я новичок в WPF, и любая помощь будет принята с благодарностью. Спасибо!

Обновление: Моя агония продолжается здесь . Ура!

1 Ответ

0 голосов
/ 23 ноября 2010

Кажется, ваш Gui будет клиентом и будет ссылаться на остальные 3 сборки.Gui.Controller будет ссылаться на Core и DataEntities, а Core будет ссылаться только на DataEntities.

AccountController должен получить список и вернуть его Gui.Controller.Это хорошо, если список ObservableCollection.Сам список должен быть помещен в Gui или Gui.Controller, в зависимости от того, можете ли вы получить доступ к свойствам Gui.Controller из Gui.Когда вы помещаете ListBox в окно, которое будет размещено в графическом интерфейсе, вам необходимо привязать его к коллекции.Коллекция может быть свойством окна.Или вы можете привязать его к методу, который может быть частью Gui.Controller.Это действительно зависит от того, как вы хотите это организовать.

...