WPF - получение значения DataGridCell из DataTemplateSelector - PullRequest
1 голос
/ 26 марта 2010

Я использую DataTemplateSelector с WPFToolkit DataGrid. Я хочу выбрать шаблон редактирования для одной ячейки на основе значения другой ячейки в той же строке.

Метод SelectTemplate объекта DataTemplateSelector принимает два аргумента: один - это элемент данных, отображаемый строкой сетки, другой - ячейка сетки.

Я хочу знать, как получить значение другой ячейки из метода SelectTemplate. Однако я не уверен в правильном способе получения этой информации путем доступа к свойствам ячейки.

    public class RangeValuesEditTemplateSelector : DataTemplateSelector
{
    public DataTemplate NumberTemplate{get; set;}
    public DataTemplate TextTemplate{get; set;}

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        //TODO: need to find the correct way to populate the if condition below
        DataGridCell theCell = container as DataGridCell;


        if (theCell.something.somethingElse)
        {
            return NumberTemplate;
        }else{
            return TextTemplate;
        }

    }


}

Может кто-нибудь помочь?

Большое спасибо заранее.

AT

1 Ответ

0 голосов
/ 12 апреля 2010

Я думаю, вам нужен ItemViewModel. Когда вы создаете эти объекты (по одному для каждой строки); У itemViewModel должны быть дополнительные свойства, которые устанавливаются (в соответствии с вашими пользовательскими вычислениями) при создании или с помощью установщиков. поэтому, если для EveryRow есть свойство с именем «MoreImportantThanNextOne», его можно установить в ctor ItemVM, который принимает некоторые данные для следующей строки. Затем в переопределении TemplateSelector вы можете просто получить доступ к значениям свойства «MoreImportantThanNextOne» ItemVM, чтобы выбрать правильный шаблон.

...