我已經看過這個解決方案:Show if ItemsControl.ItemsSource is null。 我通過代碼隱藏將ItemsControl的DataContext設置爲ObservableCollection。一切工作正常,但它只在加載階段解決一次。如果項目控件在開始時有幾個項目,則文本會消失,但不會在以後出現。如果它是空的,文本出現,但是當我稍後添加項目時它不會消失。我也嘗試過ItemsSource,但沒有運氣。我意識到即時通訊使用控件模板,我可以使用相對源代碼TemplatedParent,但我只是想確保。進一步測試後,我嘗試添加/刪除列表中的項目後,轉換器功能似乎沒有激活,即使項目顯示在我的itemscontrol上。ItemsControl DataContext綁定錯誤
<ItemsControl x:Name="MedicationList" ItemTemplate="{StaticResource UserTemplate}">
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<Grid>
<TextBlock Text="No Items to Display" Visibility="{Binding DataContext, ElementName=MedicationList, Converter={StaticResource AnyItemsToVisibilityConverter}}" />
<ItemsPresenter />
</Grid>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
您不應該調查爲什麼DataContext會發生變化嗎? – 2011-12-13 19:49:00
我試圖將我的Datacontext分配從UserControl_Loaded事件移動到InitializeComponent();並且DataContext null問題消失了。我把轉折點放入我的轉換函數中,並且它只在賦值過程中執行一次,但從來沒有當我添加/刪除項目時 – 2011-12-13 19:56:48