(在询问之前,我已经四处寻找问答,但如果它已经在其他地方并且我错过了,请原谅。
我只是想做一些看似应该简单的事情...... 尝试将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
映射到每个复选框?
如果要将CheckBox
绑定到数据对象的属性,则应使用GridViewCheckBoxColumn
或GridViewDataColumn
:
<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
不绑定到数据。它只是允许您选择给定的行。
有一个解决方案,因为您有布尔变量MyBooleanProperty
并且您希望将其与列表中的每个项目映射。 因此,您可以做的是使包装类本身中的一个布尔属性List<YourClass>
类会像这样什么的
class Yourclass
{
bool ItemBool;
}
现在,当您分配列表时,只需linq
并根据您的条件分配ItemBool