2012-07-24 14 views
6

मैं एक स्थिति है जहाँ मैं PivotItem रों का एक सेट दिखा रहा हूँ और (स्थिति के आधार पर) एक पसंदीदा एक है।क्या PivotItem को छिपाना (निकालना नहीं) संभव है?

मैं इस धुरी को छिपाने के लिए जब सूची मेरे पसंदीदा युक्त खाली है सक्षम होना चाहिए - फिर भी यह दिखाने के लिए जब वहाँ कुछ नहीं है की जरूरत है। (, कोई पसंदीदा-धुरी के बाद से सूची रिक्त है) से एक के लिए

  1. धुरी को देखने के लिए जाएं
  2. जाओ:

    अब, मैं बस इसे हटा सकता है, लेकिन क्या इस परिदृश्य के बारे में शेष PivotItem एस और एक आइटम का चयन करें।

  3. उस आइटम को अपने पसंदीदा में पसंदीदा के रूप में चुनें
  4. बैक-बटन टैप करें, और पिवट-व्यू पर वापस आएं।

अब कोई पसंदीदा-पिवट नहीं होगा, और यह पर्याप्त नहीं है।

मैं दृश्यता के साथ इसे हटाने की कोशिश की है = "छिपा", लेकिन वी.एस. ठीक से नहीं किया जा रहा निर्दिष्ट डेटा संदर्भ के बारे में शिकायत कर रहा है (यह है।)

कोई भी विचार?

उत्तर

3

क्यों जोड़ सकते हैं और उपयोगकर्ता घटनाओं की प्रतिक्रिया में अपने कोड में गतिशील PivotItem को दूर नहीं करते हैं? उपयोगकर्ता पसंदीदा जोड़ता है -> पिवोट आइटम बनाएं और जोड़ें। उपयोगकर्ता अपने अंतिम पसंदीदा आइटम को हटाता है -> पिवोट आइटम को हटा दें।

+0

था से प्राप्त टी एक अच्छा विचार होगा, लेकिन धुरी आइटम (कम से कम यह कोड के एक अनुचित राशि ले जाएगा) में कोड-पीछे कुछ हद तक पुन: बनाने के लिए कठिन है। मुझे लगता है कि मैं इसे हटा सकता हूं, इसे स्टोर कर सकता हूं और बाद में इसे फिर से बहाल कर सकता हूं। –

+1

आप 'प्रारंभिक कॉम्पोनेंट' कॉल के तुरंत बाद इसे हटा सकते हैं। इस तरह उपयोगकर्ता को यह ध्यान नहीं देना चाहिए। एक और संभावना 'संसाधन' अनुभाग में पिवट आइटम के लिए एक्सएएमएल यूआई बनाना और वहां से इसे पुनर्प्राप्त करना होगा। –

+0

सच है। लेकिन गतिशील रूप से जोड़ने और हटाने के बजाय इसे "छिपाने" का कोई तरीका नहीं है? –

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

+0

दुर्भाग्य से, के रूप में मैं अपने मूल प्रश्न में उल्लेख किया है, यह मैं शुरू में करने की कोशिश की क्या है। यह काम नहीं करता है। यद्यपि समय को एक बहुत ही सभ्य उत्तर लिखने के लिए धन्यवाद देने के लिए धन्यवाद। –

+0

क्या आप उस त्रुटि के बारे में अधिक जानकारी जोड़ सकते हैं जो विजुअल स्टूडियो आपको डेटा संदर्भ के बारे में बताता है? – Berni

+0

मेरी गलती - यह पता चला कि रीशर्पर था जिसने कुछ ऐसा नहीं किया जो इसे नहीं लेना चाहिए। –