6

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

当包含我的收藏夹的列表为空时,我需要能够隐藏这个枢轴 - 但是当有东西时它需要显示出来。

现在,我可以删除它,但是这种情况呢:

  1. 转到枢轴视图(没有最喜欢的枢轴,因为列表是空的)
  2. 转到剩余PivotItem的其中一个并选择一个项目。
  3. 在自己的视图中选择该项目作为收藏夹
  4. 点击后退按钮,然后返回枢轴视图。

现在将没有收藏夹-pivot,这还不够好。

我尝试使用 Visibility="hidden" 将其删除,但 VS 抱怨数据上下文未正确指定(确实如此。)

有任何想法吗?

4

2 回答 2

3

为什么不在PivotItem代码中动态添加和删除响应用户事件?用户添加收藏夹 -> 创建并添加 Pivot 项目。用户删除他最后最喜欢的项目 -> 删除 Pivot 项目。

于 2012-07-24T10:11:59.700 回答
0

我想您将在该枢轴项目中有一个收藏夹列表,因此我的方法是将枢轴项目的可见性绑定到列表的 isEmpty 属性。

例如,视图将是

<PivotItem
  Visibility="{Binding IsNotEmpty,
  Converter={StaticResource VisibilityConverter}}"/>

并在视图模型中

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

有用的转换器获得的转换器

于 2012-07-25T20:33:17.970 回答