2014-09-15 3 views
13

나는 채우는 있어요 jumplist를 통해 : 위대한 작품을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(); 
    } 

. 유일한 문제는 응용 프로그램에 파일 메뉴가 있으며 최근 목록도 표시하려는 것입니다. 최근 파일의 두 번째 복사본을 저장하면 쉽게 할 수 있지만, jumplist에서 사용한 파일 목록을 열거 할 수 있는지 궁금합니다. 나는 그렇게하기위한 것을 알아낼 수 없었다.

여기에 뭔가가 있습니까? jumplist에서 파일을 열거 할 수 있습니까? 또는 자체 복제 목록을 저장해야합니까?

+0

AddToList() 메서드 외부에서 선언 된 경우 목록을 열거 할 수 있습니까? 아마도 정적 목록을 만드시겠습니까? – MethodMan

+3

다른 컨트롤의 정보를 사용할 수는 있지만 일반적으로 UI와 독립적 인 뷰 모델에서 공유 데이터를 사용할 수 있도록하는 것이 좋습니다. 따라서 어느 시점에서 결정한 경우 점프 목록을 더 이상 원하지 않으면 파일 메뉴의 목록은 영향을받지 않습니다 (반대의 경우도 마찬가지 임). – Phil1970

답변

1

귀하의 코드를 확인했습니다. 그리고 나는 그것에 대한 질문을 가지고있다. 나는 당신이 제공 한 MSDN 페이지를 들여다 보았다. 그리고 거기에 내가 추가하는 작업의 예를 참조하십시오 나는이 내 자신의 방법 CreateExtract을 생성하고 난 적어도 현재 세션 작업 중에 생성에 액세스 할 수 있습니다

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

. 나는이 질문에 대한 답변입니다 확실하지 않다

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 목록에 작업을 추가하지 않는 이유를 추론하기 위하여 찾고 있어요 : 이것은 내 코드?

관련 문제