WPF - 从DataTemplateSelector中获取DataGridCell的值

时间:2010-03-26 20:10:32

标签: c# wpf datagrid datatemplate datatemplateselector

我正在将DataTemplateSelector与WPFToolkit DataGrid一起使用。我想根据同一行上另一个单元格的值为一个单元格选择编辑模板。

DataTemplateSelector的SelectTemplate方法有两个参数:一个是网格行显示的数据项,另一个是网格单元。

我想知道的是如何从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 :(得分:0)

我认为你需要一个ItemViewModel。创建这些对象时(每行一个); itemViewModel应该具有在创建时或通过setter设置的其他属性(根据您的自定义计算)。因此,如果EachRow具有名为“MoreImportantThanNextOne”的属性,则可以在ItemVM ctor中设置它,该文件将接收下一行的一些数据。
然后在TemplateSelector覆盖中,您只需访问ItemVM的“MoreImportantThanNextOne”属性值即可选择正确的模板。