Nir*_*Nir 12
这个XAML会做类似的事情,它有一个可见的ListView显示一个列表和一个隐藏的消息,并在列表为空时使用触发器切换可见性.
下面的代码适用于任何IList或ICollection,但是如果您希望在添加或删除需要使用ObservableCollection或类似项目的项目时更新显示,则可以像任何数据源一样使用相同的技术.
ContentPresenter存在,因为您只能在模板或样式中使用触发器,因此我们将控件放在DataTemplate中并使用ContentPresenter来显示它.
如果您希望消息显示在ListView中,那么您需要做的就是删除隐藏ListView的Setter,并向TextBlock添加一些边距,以将其放置在ListVIew中的第一个项目所在的位置.
<ContentPresenter Content="{Binding}">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<Grid>
<ListView Name="list" ItemsSource="{Binding MyList}"/>
<TextBlock Name="empty" Text="No items found" Visibility="Collapsed"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding MyList.Count}" Value="0">
<Setter TargetName="list" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="empty" Property="Visibility" Value="Visible"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5936 次 |
| 最近记录: |