當標準ListBox被禁用時,其中的元素將變灰。它們仍然可見,儘管不可點擊。我想知道是否有可能,如果是這樣,當ListBox被禁用時如何隱藏這些項目。我不想從ItemSource中刪除元素或爲它們創建臨時存儲。禁用ListBox時隱藏ListBox中的項目
到目前爲止,我想過改變列表框的可見性,但是擺脫了整個事情(包括邊框線)。
當標準ListBox被禁用時,其中的元素將變灰。它們仍然可見,儘管不可點擊。我想知道是否有可能,如果是這樣,當ListBox被禁用時如何隱藏這些項目。我不想從ItemSource中刪除元素或爲它們創建臨時存儲。禁用ListBox時隱藏ListBox中的項目
到目前爲止,我想過改變列表框的可見性,但是擺脫了整個事情(包括邊框線)。
你可以綁定的ListBoxItem
Visibility
到ListBox
<ListBox ItemsSource="{Binding DataSource}">
<ListBox.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Visibility" Value="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType=ListBox}, Converter={StaticResource BooleanToVisibilityConverter}}" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
只需添加另一個列表框的形式,當你用它裏面的元素禁用列表框第一,隱藏它,然後顯示對方這本質上是一個空的灰色列表框的用戶。
然後,當您啓用方框後,隱藏空的並顯示真實的。
希望這會有所幫助。
IsEnabled
你怎麼綁定呢? – Tigran一個簡單的解決方案是有兩個列表框。一個完整的項目,第二個空的在同一個確切位置。當你需要隱藏它的第一個設置爲禁用/無形的項目,並設置第二可見/禁用,反之亦然 – Steve
@Tigran我有一個ObservableCollection完全綁定到ListBox的ItemsSource在XAML字符串: '的ItemsSource =「{綁定數據源}」' –