是否可以隐藏(不删除)PivotItem?

时间:2012-07-24 10:06:22

标签: c# wpf windows-phone-7

我有一种情况,我正在展示一组PivotItem和(取决于具体情况)最喜欢的一组。

当包含我的收藏夹的列表为空时,我需要能够隐藏此枢轴 - 但是当它存在某些东西时需要显示它。

现在,我可以删除它,但是这个场景呢:

  1. 转到数据透视图(没有收藏夹,因为列表为空)
  2. 转到剩余的PivotItem之一并选择一个项目。
  3. 在自己的视图中选择该项作为收藏
  4. 点击后退按钮,返回数据透视图。
  5. 现在没有收藏夹 - 枢轴,而且还不够好。

    我试图用Visibility =“hidden”删除它,但是VS抱怨没有正确指定数据上下文(它是。)

    有什么想法吗?

2 个答案:

答案 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;
}}

Useful Converters

获得的转换器