WPF - получение значения одного DataGridCell из DataTemplateSelector

Я использую 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


person Andy T    schedule 26.03.2010    source источник
comment
Вы уже нашли решение?   -  person Shimmy Weitzhandler    schedule 08.07.2010


Ответы (1)


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

person Gishu    schedule 12.04.2010