2013-12-20 19 views
0

我想动态显示/隐藏DataGridViewColumn,因此我在演示模型中创建了名为IsColumnVisible的bool属性,并将其应用于xaml中的Visibility=IsColumnVisible通过IsVisibility控制Telerki GridViewDataColumn的可见性

试过这也,

<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"); 
    } 
} 

它不工作(列始终保持可见)。我错过了什么吗?

回答

2

因为IsVisible的类型为bool,所以您不需要VisibilityToBoolConverter,而用于绑定“IsDeadlineDateVisible”的属性也是bool。 因此,您可以直接使用,如下所示: IsVisible =“{Binding Path = IsDeadlineDateVisible}”,没有转换器。

如果您绑定的依赖属性属于Visibility类型,例如对于Grid,则依赖项属性Visibility不是布尔值,则将需要该转换器。 要切换网格的可见性,您需要使用上面使用的转换器。