6

のセットPivotItemと(状況によっては)お気に入りのセットを表示している状況があります。

お気に入りを含むリストが空の場合、このピボットを非表示にできる必要がありますが、そこに何かがある場合は表示する必要があります。

今、私はそれを取り除くことができましたが、このシナリオはどうですか:

  1. ピボット ビューに移動します (リストが空なので、お気に入りのピボットはありません)。
  2. 残りPivotItemの のいずれかに移動して、アイテムを選択します。
  3. そのアイテムを独自のビューでお気に入りとして選択します
  4. 戻るボタンをタップして、ピボット ビューに戻ります。

これで、お気に入りのピボットはなくなりますが、それだけでは十分ではありません。

Visibility="hidden" で削除しようとしましたが、VS はデータ コンテキストが適切に指定されていないと文句を言っています (そうです)。

何か案は?

4

2 に答える 2

3

PivotItemユーザーイベントに応じてコードに動的に追加および削除しないのはなぜですか?ユーザーがお気に入りを追加->ピボットアイテムを作成して追加します。ユーザーは最後のお気に入りのアイテムを削除します->ピボットアイテムを削除します。

于 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 に答える