2011-04-20 31 views
1

我在WPF這條線(.NET 3.5):MVVM WPF與標籤替換的ListBox的ItemsSource時爲空或null

<ListBox ItemsSource="{Binding Locks}" Style="{DynamicResource FancyListBox}" /> 

我期望的行爲是當地產的鎖(一個ObservableCollection)爲null或包含0個元素,則顯示一個如下所示的標籤而不是ListBox。

<Label Content="No locks are present" Style="{DynamicResource FancyLabel}" /> 

我能想到的迄今唯一的解決辦法是使用valueconverter(即轉換器像CollectionToVisibilityShowIfNull,CollectionToVisibilityShowIfNotNull)的鎖定屬性綁定到的知名度,但我不知道這是最好的解決方案。

... Visibility={Binding Locks, Converter={StaticResource CollectiontoVisibilityShowIfNull}} .. 

感謝您的幫助!

回答

5

這是我平時做的:

<Grid> 
    <ListBox Name="lstLocks" ItemsSource="{Binding Locks}" Style="{DynamicResource FancyListBox}" /> 
    <Label Name="lblNoLocks" Content="No locks are present" Style="{DynamicResource FancyLabel}" Visibility="Collapsed" /> 
</Grid> 

... 
<DataTrigger Binding="{Binding Locks.Count}" Value="0"> 
    <Setter TargetName="lstLocks" Property="Visibility" Value="Collapsed" /> 
    <Setter TargetName="lblNoLocks" Property="Visibility" Value="Visible" /> 
</DataTrigger> 
+0

我忘了說這是在一個DataTemplate發生的事情,所以我不知道,如果使用名稱的工作,但不是沒有!謝謝你Thomas – 2011-04-20 19:13:28

+0

不要忘記upvote並接受答案;) – 2011-04-20 20:25:47

+0

噓,不適用於WP7 :( – funkybro 2011-10-26 12:30:02

相關問題