我有一种情况,我正在展示一组PivotItem
和(取决于具体情况)最喜欢的一组。
当包含我的收藏夹的列表为空时,我需要能够隐藏此枢轴 - 但是当它存在某些东西时需要显示它。
现在,我可以删除它,但是这个场景呢:
PivotItem
之一并选择一个项目。现在没有收藏夹 - 枢轴,而且还不够好。
我试图用Visibility =“hidden”删除它,但是VS抱怨没有正确指定数据上下文(它是。)
有什么想法吗?
答案 0 :(得分:3)
为什么不在代码中动态添加和删除PivotItem
以响应用户事件?
用户添加收藏夹 - >创建并添加Pivot项。
用户删除他最后喜欢的项目 - >删除Pivot项目。
答案 1 :(得分:0)
我想你会在该枢轴项目中有一个收藏夹列表,所以我的方法是将枢轴项目的可见性绑定到列表的isEmpty属性。
例如,视图将是
<PivotItem
Visibility="{Binding IsNotEmpty,
Converter={StaticResource VisibilityConverter}}"/>
并在viewmodel中
ICollectionView ItemsSource;
...
public bool IsNotEmpty(){
return !ItemsSource.IsEmpty;
}
最后,转换器
public class BooleanToVisibilityConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value == null)
return Visibility.Collapsed;
var isVisible = (bool)value;
return isVisible ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var visiblity = (Visibility)value;
return visiblity == Visibility.Visible;
}}
获得的转换器