【问题标题】:Telerik GridViewSelectColumn - Map Checkbox To Boolean PropertyTelerik GridViewSelectColumn - 将复选框映射到布尔属性
【发布时间】:2017-08-23 20:33:59
【问题描述】:

(在提问之前我已经四处寻找问答,但如果它已经在其他地方并且我错过了,请原谅。)

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

<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 映射到每个复选框?

【问题讨论】:

    标签: c# wpf checkbox telerik radgridview


    【解决方案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 不绑定到数据。它只是允许您选择给定的行。

    【讨论】:

    • 我感兴趣的是事实上的标准标题复选框,它将选择/取消选择所有行复选框。
    • 你为什么要定义一个 CellTemplate?您的“如何将 MyBooleanProperty 映射到每个单独的复选框”的问题如何?适用于此...?
    • 我在 Telerik 自己的论坛上举了另一个例子。他们自己关于看似标准功能的文档不仅令人困惑,而且还有很多不足之处。
    • 我想做的就是有一个标题复选框全选/取消全选,然后能够映射各个复选框 - 用户是否甚至费心点击该标题复选框(这是一个 UI方便) - 进入我的实体列表。我不明白为什么要做这么痛苦的事情。
    【解决方案2】:

    有一个解决方案,因为您有布尔变量MyBooleanProperty,并且您希望将其与列表中的每个项目进行映射。 所以你可以做的是在你的包装类本身中创建一个布尔属性List&lt;YourClass&gt;

    类会是这样的什么的

    class Yourclass { bool ItemBool; }

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

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 1970-01-01
      • 2012-06-16
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多