1

WPFToolkit DataGrid で DataTemplateSelector を使用しています。同じ行の別のセルの値に基づいて、あるセルの編集テンプレートを選択したいと考えています。

DataTemplateSelector の SelectTemplate メソッドは 2 つの引数を取ります。1 つはグリッド行によって表示されるデータ項目で、もう 1 つはグリッド セルです。

私が知りたいのは、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;
        }

    }


}

誰でも助けることができますか?

よろしくお願いします。

4

1 に答える 1

0

ItemViewModelが必要だと思います。これらのオブジェクトを作成するとき(各行に1つ)。itemViewModelには、作成時またはセッターを介して(カスタム計算に従って)設定される追加のプロパティが必要です。したがって、EachRowに「MoreImportantThanNextOne」というプロパティがある場合は、ItemVM ctorで設定できます。これにより、次の行のデータが取り込まれます。
次に、TemplateSelectorオーバーライドで、ItemVMの「MoreImportantThanNextOne」プロパティ値にアクセスして、適切なテンプレートを選択できます。

于 2010-04-12T12:32:35.983 に答える