Telerik GridViewSelectColumn - 将Checkbox映射到布尔属性

时间:2017-08-23 20:34:00

标签: c# wpf checkbox telerik radgridview

(在问及之前,我已经远远地看了Q& A,但请原谅,如果它已经在其他地方了,我就错过了。)

我只是想做一些看似简单的事情......尝试将telerik:GridViewSelectColumn中的telerik:RadGridView中的各个复选框映射到映射为的实体的相应布尔属性每一行。

<telerik:RadGridView x:Name="MyGridView" ItemsSource="{Binding MyGridViewItems, Mode=TwoWay}" SelectionMode="Extended" AutoGenerateColumns="False">    
    <telerik:RadGridView.Columns>
    <telerik:GridViewSelectColumn Name="MyCheckBoxColumn">
        <telerik:GridViewSelectColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:GridViewDataControl}}, Path=DataContext.IncludeChangedCommand}" CommandParameter="{Binding}" IsChecked="{Binding MyBooleanProperty, Mode=TwoWay}" />
        </DataTemplate>
        </telerik:GridViewSelectColumn.CellTemplate>                                            
    </telerik:GridViewSelectColumn>

    .
    .
    .

    </telerik:RadGridView.Columns>
</telerik:RadGridView>

如何将MyBooleanProperty映射到每个复选框?

2 个答案:

答案 0 :(得分:1)

如果要将CheckBox绑定到数据对象的属性,则应使用GridViewCheckBoxColumnGridViewDataColumn

<telerik:GridViewDataColumn Name="MyCheckBoxColumn">
    <telerik:GridViewDataColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:GridViewDataControl}}, Path=DataContext.IncludeChangedCommand}" 
                      CommandParameter="{Binding}"
                      IsChecked="{Binding MyBooleanProperty, Mode=TwoWay}" />
        </DataTemplate>
    </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>

GridViewSelectColumn不绑定数据。它只是允许您选择给定的行。

答案 1 :(得分:0)

有一个解决方案,因为您具有布尔变量MyBooleanProperty,并且想要将其与列表中的每个项目进行映射。 因此,您可以做的是在包装类本身List<YourClass>

中创建一个布尔属性

类会是这样的

class Yourclass { bool ItemBool; }

现在,当您分配列表时,只需执行linq并根据您的条件分配ItemBool