WPF привязка данных в зависимости от условий - PullRequest
1 голос
/ 02 июня 2009

Цель Разработайте пользовательский элемент управления, который отображает сводные данные за указанную неделю.

Переданные данные будут выглядеть следующим образом:

3rd May 2009        Customer A     $2000
4th May 2009        Customer A     $3900
6th May 2009        Customer B     $1900

Ожидаемое отображение будет

    3rd May      4th May        5th May        6th May
   Customer A   Customer A                    Customer B
    $2000        $1900                          $1900 

Как видите, данные условны по дате.

Могут ли элементы быть привязаны к данным на основе условия в WPF?

т.е. показать сводку, когда дата источника данных == текущая дата элементов

или я должен просто придерживаться кодирования этой логики в C # позади?

----------------- Редактировать вопросы Энди --------------------

Я могу заставить его реализовать интерфейс, но не базовый класс.

То, что я хочу сделать, это иметь элемент управления, показывающий 1 неделю из даты в году, это будет установлено через свойство, называемое текущей неделей.

Затем, когда передается известный источник данных (см. Пример таблицы выше), я хочу, чтобы элементы любого дня в элементе управления извлекали свои данные из источника данных, если они есть, и если нет, то все равно показывали, а просто отображали дату .

Данные будут представлять собой список сводных объектов сетки

public class GridSummary
{
     public DateTime SummaryDate;
     public Client Customer;
     public decimal Amount;
}

Ответы [ 2 ]

1 голос
/ 09 июня 2009

Если я вас правильно понимаю, вы хотите отобразить некоторые табличные данные в виде списка. Это правильно?

Что вы знаете о вводе данных? Гарантируется ли реализация интерфейса или наследование от базового класса? Если позже, то я думаю, что шаблоны данных - это путь - создайте шаблон данных для каждого возможного типа, который вы ожидаете получить, и для каждого установите TargetType в тип, который должен отображаться. Когда вы связываете данные с элементом управления, WPF автоматически выбирает правильный шаблон данных для каждого объекта в коллекции.

Если вы не можете ничего знать о поступающих данных, как вы можете знать, что отображать или как отображать их? Кажется, что как минимум должно быть что-то, что должно быть известно о входящих данных.

(Возможно, я не понимаю, что вы пытаетесь сделать - уточните, и я посмотрю, смогу ли я помочь больше.)

Обновление

Похоже, источником данных для вашего элемента управления будет список GridSummary объектов. Если это так, то я думаю, что вы можете вместо этого использовать CollectionViewSource в качестве источника данных (который в основном обернет вашу коллекцию GridSummary объектов) и подписаться на его Filter событие. Для каждого переданного объекта сравните дату с неделей свойства CurrentWeek, и, если дата указана в этой неделе, примите ее (например, на связанной странице MSDN есть пример).

0 голосов
/ 02 июня 2009

Вы можете сделать это:

if(a)
    this.DataSource = a;
else
    this.DataSource = b;

Я не уверен, что ты это имел в виду.

Вы делаете свой собственный рендеринг? или вы строите свой контроль вне базового контроля? Возможно, вы сможете использовать вложенные элементы управления, чтобы получить то, что вам нужно, и вы можете условно управлять вложенными элементами управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...