【发布时间】:2018-02-07 10:39:17
【问题描述】:
我正在使用 Telerik radgridviews,并且我有一些列,只有在选中复选框时才显示。复选框在网格之外,而我想要显示/隐藏的列在另一个网格内。这是我尝试过的,但似乎不起作用:
<Grid>
<Checkbox Name = "test">
</Grid>
<telerik:RadGridView ...>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<telerik:RadGridView ...
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn IsVisible="{Binding IsChecked,Source={x:Reference test}, Converter{StaticResource BooleanToVis}}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
更新 #2 所以我有以下内容,但它似乎不起作用。我没有遇到任何绑定问题,但选中或取消选中复选框没有任何作用。
public bool IsChecked
{
get
{
return isChecked;
}
set
{
if (isChecked != value)
{
isChecked = value;
NotifyPropertyChanged(nameof(IsChecked));
}
}
}
<BooleanToVisibilityConverter x:Key="BooleanToVis"/>
<CheckBox x:Name="showCols" Content="test" IsChecked="{Binding IsChecked}"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding x}" IsVisible="{Binding DataContext.IsChecked,Source={x:Reference showCols},Converter={StaticResource BooleanToVis}}" />
【问题讨论】:
-
CheckBox 上的绑定需要是 TwoWay:
IsChecked="{Binding IsChecked, Mode=TwoWay}" -
@Shawn 谢谢,但它仍然无法正常工作,不确定这是否与 Telerik 或其他什么有关..