2012-07-24 3 views
6

私はPivotItemのセットと(状況に応じて)お気に入りのセットを表示している状況があります。PivotItemを隠す(削除しない)ことはできますか?

私のお気に入りを含むリストが空の場合、このピボットを非表示にする必要がありますが、そこに何かがあるときに表示する必要があります。 (リストが空であることから、ノーお気に入りのピボット)のいずれかにピボットビューへ

  1. ゴー
  2. ゴー:

    今、私はちょうどこのシナリオについては、それを削除しますが、どのような可能性があり残りのPivotItemと項目を選択します。

  3. その項目をお気に入りの中から選択してください。
  4. 戻るボタンをタップしてピボットビューに戻ります。

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

(それがある。)私は可視性=「隠れた」とそれを削除しようとしましたが、VSが正しく指定されていないデータコンテキスト文句を言っている

を任意のアイデア?

答えて

3

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

+0

ターから得られ、最終的に、変換器

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

であろうピボットアイテムはコードビハインドではやや再現しにくいです(少なくともコードは不合理な量を取るでしょう)。私はそれを取り除いて保管し、後で元に戻すことができると思う。 –

+1

'InitializeComponent'呼び出しの直後にそれを削除することができます。そうすれば、ユーザーは気づかないでください。別の可能性は、 'Resources'セクションにピボット項目のXAML UIを作成し、そこから取得することです。 –

+0

真。しかし、動的に追加したり削除したりするのではなく、「隠す」方法はありませんか? –

0

ピボットアイテムの中にお気に入りのリストがあると思いますので、ピボットアイテムの表示をリストのisEmptyプロパティにバインドする方法があります。

例えば、ビューは

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

とのviewmodel

ICollectionView ItemsSource; 
... 
public bool IsNotEmpty(){  
    return !ItemsSource.IsEmpty; 
} 

とコンバータUseful Converters

+0

残念ながら、私が私の元の質問で述べたように、これは私が最初にやろうとしたことです。これは機能しません。しかし、非常にまともな答えを書くために時間を入れてくれてありがとう。 –

+0

ビジュアルスタジオがデータコンテキストに関するエラーについての詳細情報を追加できますか? – Berni

+0

私のせいで、ReSharperはそれが持ってはいけないものに下線を引くことにしました。 –