Telerik RadGridView 集合自定义编辑器

本文关键字:编辑器 自定义 集合 RadGridView Telerik | 更新日期: 2023-09-27 18:34:37

我有一个绑定到TestType ObservableCollectionRadGridView

TestType包含 3 个成员:

string TestString;
Int TestInt;
List<string> TestCollection;

我在ObservableCollection中添加了 3 条记录.

绑定有效,我可以看到记录。

当我尝试编辑表时,我无法编辑TestList成员单元格。

在 winforms 属性网格中,我添加了一个这样的EditorAttribute

[Editor typeof(CollectionUITypeEditor), typeof(UITypeEditor)].

此外,可以使用自定义编辑器(在属性网格中(编辑成员。

无论如何可以让自定义编辑器在单元格编辑中工作吗?

Telerik RadGridView 集合自定义编辑器

您需要 CellEditTemplate

:设置 CellTemplate 和 CellEditTemplate

<telerik:RadGridView x:Name="MyGrid" AutoGenerateColumns="False" ItemsSource="{Binding TestTypeList}">
    <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn DataMemberBinding="{Binding TestString}" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding TestInt}" />
        <telerik:GridViewDataColumn DataMemberBinding="{Binding TestCollection}">
            <telerik:GridViewDataColumn.CellTemplate>
                <DataTemplate>
                    // Here give a template for the "TestCollection" when it is not in editing.
                </DataTemplate>
            </telerik:GridViewDataColumn.CellTemplate>
            <telerik:GridViewDataColumn.CellEditTemplate>
                <DataTemplate>
                    // Here give a template for the "TestCollection" when it is in editing.
                </DataTemplate>
            </telerik:GridViewDataColumn.CellEditTemplate>
        </telerik:GridViewDataColumn>           
    </telerik:RadGridView.Columns>
</telerik:RadGridView>

当您将简单类型绑定到 DataMemberBinding 时,Telerik 会为您提供绑定类型的默认"CellTemplate"和默认的"CellEditTemplate"。

但是,如果您将复杂类型绑定到 DataMemberBinding,Telerik 不知道如何对其进行模板化,因此您需要为它提供自己的正常状态 (CellTemplate( 和编辑状态 (CellEditTemplate( 的数据模板。