2014-09-15 7 views
13

मैं पॉप्युलेट कर रहा हूँ एक jumplist के माध्यम से:हालिया फाइलों को जंपलिस्ट करें?

public static void AddToList(String path) 
    { 
     var jumpList = JumpList.GetJumpList(Application.Current); 
     if (jumpList == null) return; 

     string title = System.IO.Path.GetFileName(path); 
     string programLocation = Assembly.GetCallingAssembly().Location; 

     var jt = new JumpTask 
     { 
      ApplicationPath = programLocation, 
      Arguments = path, 
      Description = path, 
      IconResourcePath = programLocation, 
      Title = title 
     }; 

     JumpList.AddToRecentCategory(jt); 

     jumpList.Apply(); 
    } 

कौन सा अच्छा काम करता है। एकमात्र समस्या यह है कि मेरे पास मेरे आवेदन में एक फ़ाइल मेनू भी है और मैं हाल ही की सूची भी दिखाना चाहता हूं। मैं हाल ही की फाइलों की दूसरी प्रतिलिपि को आसानी से कर सकता हूं, लेकिन मैं सोच रहा था कि क्या मैं संभवतः जम्प्लिस्ट द्वारा उपयोग की जाने वाली फ़ाइलों की सूची का आकलन कर सकता हूं। मैं ऐसा करने के लिए कुछ भी पता लगाने में सक्षम नहीं हूं।

क्या मुझे यहां कुछ याद आ रही है? क्या मैं जंपलिस्ट में फाइलों की गणना कर सकता हूं, या क्या मुझे अपनी डुप्लिकेट सूची स्टोर करने की ज़रूरत है?

+0

क्या आप सूची को गणना कर सकते हैं यदि इसे AddToList() विधि के बाहर घोषित किया गया हो तो शायद एक स्थैतिक सूची बनाएं? – MethodMan

+3

जबकि आप किसी अन्य नियंत्रण से जानकारी का उपयोग कर सकते हैं, आमतौर पर यूआई के आजादी वाले दृश्य मॉडल में साझा डेटा उपलब्ध होना बेहतर होता है, इसलिए यदि आप किसी बिंदु पर निर्णय लेते हैं, तो आप कूद सूची नहीं चाहते हैं, फिर फ़ाइल मेनू के अंतर्गत सूची प्रभावित नहीं होगी (और इसके विपरीत)। – Phil1970

उत्तर

1

मैंने आपका कोड चेक किया है। और मेरे पास यह सवाल है। मैंने आपके द्वारा प्रदान किए गए MSDN पृष्ठ को देखा। और वहाँ मैं जोड़ने कार्य का उदाहरण देखें:

private void AddTask(object sender, RoutedEventArgs e) 
{ 
    //.... 
    //Mostly the same code as your 
    JumpList jumpList1 = JumpList.GetJumpList(App.Current); 
    jumpList1.JumpItems.Add(jumpTask1); // It is absent in your code!!! 
    JumpList.AddToRecentCategory(jumpTask1); 
    jumpList1.Apply(); 
} 

मैं दो अपने ही तरीकों Create और Extract बनाया है और मैं कम से कम वर्तमान सत्र कार्य के दौरान बनाया करने के लिए उपयोग कर सकते हैं। मुझे यकीन है कि यह आपके प्रश्न का उत्तर देने के पर है नहीं कर रहा हूँ

private void Extract() 
{ 
    var jumpList = JumpList.GetJumpList(Application.Current); 

    if (jumpList == null) return; 

    foreach (var item in jumpList.JumpItems) 
    { 
     if(item is JumpTask) 
     { 
      var jumpTask = (JumpTask)item; 
      Debug.WriteLine(jumpTask.Title); 
     } 
    } 
} 
private void Create() { 
    var jumpList = JumpList.GetJumpList(Application.Current); 

    if (jumpList == null) 
    { 
     jumpList = new JumpList(); 
     JumpList.SetJumpList(Application.Current, jumpList); 
    } 

    string title = "Title"; 
    string programLocation = "Location"; 
    var path = "path"; 

    var jt = new JumpTask 
    { 
     ApplicationPath = programLocation, 
     Arguments = path, 
     Description = path, 
     IconResourcePath = programLocation, 
     Title = title 
    }; 
    jumpList.JumpItems.Add(jt); 
    JumpList.AddToRecentCategory(jt); 
    jumpList.Apply(); 
} 

, लेकिन मैं तर्क करने तुम क्यों JumpItems सूची में अपना कार्य न जोड़ें रहा हूँ: यह मेरा कोड है?

संबंधित मुद्दे