我想动态显示/隐藏DataGridViewColumn
,因此我在演示模型中创建了一个名为IsColumnVisible的bool
属性,并将其应用于xaml中的Visibility=IsColumnVisible
。
也尝试了这个,
<conv:VisibilityToBoolConverter x:Key="VisibleIfTrue"
Inverted="True"
Not="False" />
<conv:VisibilityToBoolConverter x:Key="VisibleIfFalse"
Inverted="True"
Not="True" />
<telerik:GridViewDataColumn Width="100"
Header="Deadline Date"
DataFormatString="{}{0:MM/dd}"
DataMemberBinding="{Binding DEADLINE_DT}"
IsReadOnly="True"
TextAlignment="Center"
HeaderCellStyle="{StaticResource GridViewHeaderCellStyle}"
ShowFieldFilters="False"
IsVisible="{Binding Path=IsDeadlineDateVisible, Converter={StaticResource VisibleIfTrue}}" />
这是我的代码背后的属性(演示模型)
public bool IsDeadlineDateVisible
{
get
{
return _IsDeadlineDateVisible;
}
set
{
_IsDeadlineDateVisible = value;
OnPropertyChanged("IsDeadlineDateVisible");
}
}
它不起作用(列始终可见)。我错过了什么吗?
答案 0 :(得分:2)
您不需要VisibilityToBoolConverter,因为IsVisible的类型为bool,而您用于绑定“IsDeadlineDateVisible”的属性也是bool。 因此,您可以直接使用如下: IsVisible =“{Binding Path = IsDeadlineDateVisible}”,没有转换器。
如果要绑定的依赖项属性属于Visibility类型,则需要转换器,例如,对于Grid,依赖项属性Visibility不是bool。 要切换网格的可见性,您需要使用上面使用过的转换器。