绑定telerik radgridview

时间:2014-05-15 20:10:43

标签: wpf telerik

我有一个非常棘手的情况,我将数据绑定到telerik radgridview,其中一切正常,直到我尝试根据另一列的检查值绑定一个复选框列的可见性。我尝试过以下方法:

<telerik:RadGridView  ShowGroupPanel="False" AutoGenerateColumns="False" ItemsSource="{Binding ParametersFilterConfigurations}">
    <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn IsFilterable="False" IsGroupable="False" IsSortable="False" DataMemberBinding="{Binding FilterElementName}" Header="Parameter Name" />
        <telerik:GridViewCheckBoxColumn IsFilterable="False" IsGroupable="False" IsSortable="False" DataMemberBinding="{Binding CanView}" Header="Viewable"/>
        <telerik:GridViewCheckBoxColumn IsVisible="{Binding CanView}"  IsFilterable="False" IsGroupable="False" IsSortable="False" DataMemberBinding="{Binding CanFilterBy}" Header="Filterable" />
    </telerik:RadGridView.Columns>
</telerik:RadGridView>

当我运行此WPF时,尝试从主datacontext找到最后一列的IsVisible =“{Binding CanView”,并且offcourse失败并显示以下内容:

  

System.Windows.Data错误:40:BindingExpression路径错误:'object'''MainWindow'(Name ='')'上找不到'CanView'属性。 BindingExpression:路径= CanView; DataItem ='MainWindow'(Name =''); target元素是'GridViewCheckBoxColumn'(HashCode = 53813616); target属性为'IsVisible'(类型'Boolean')

我该如何解决这个问题?请帮忙。

1 个答案:

答案 0 :(得分:1)

我建议在“可过滤”列中使用单元格模板。由于“CanView”属性每行都会更改,因此无法将另一整列的可见性绑定到该行。您可以执行的操作始终显示列,但根据需要显示/隐藏该列中的复选框。即,像这样:

<telerik:GridViewColumn>
    <telerik:GridViewColumn.CellTemplate Header="Filterable">
        <DataTemplate>
            <CheckBox Visibility="{Binding CanView,Converter={StaticResource BoolToVisConverter}"
                      IsChecked="{Binding CanFilterBy}"
                      />
        </DataTemplate>
    </telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>