2013-12-20 49 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不是布爾值,則將需要該轉換器。 要切換網格的可見性,您需要使用上面使用的轉換器。