2014-06-20 3 views
0

Я смотрел на это: http://code.msdn.microsoft.com/wpapps/Custom-LongList-Selector-bf8cb9ad и пытался включить в свое приложение. Однако, это немного запутывает, так как мои данные загружаются по-разному. Прямо сейчас, у меня есть две ошибки Лучший перегруженный метод соответствия для CustomKeyGroup < .ViewModels.SoundData> .GetSoundGroups (System.Collections.Generic.List < .ViewModels.SoundData>)»имеет некоторые недопустимые аргументыПользовательские списки переходов в Windows Phone

Аргумент 1: не может конвертировать из 'string' в 'System.Collections.Generic.List'

Ошибка в 'CustomKeyGroup.GetSoundGroups (mvm.Items);' от mainpage.cs. Я знаю, что вопросы - это проблема. Если вы посмотрите на ссылку, они загружают данные по-разному w/listmovie.add.

Я знаю, что что-то сильно прикручивается, но поскольку мои данные загружаются разными, им трудно заставить его работать правильно.

Id нравится иметь пользовательский jumplist с заголовками групп (Alpha, Bravo и т. Д.), Расположенный в моей SoundModel. Вот часть:

namespace T.ViewModels 
{ 
    public class SoundModel: BindableBase 
    { 
     public SoundGroup NewAdds { get; set; } 
     public SoundGroup Software { get; set; } 

     } 

     public bool IsDataLoaded { get; set; } 



     public void LoadData() 
     { 
      // Load data into the model 
      Software = CreateSoftwareGroup(); 
      NewAdds = CreateNewAddsGroup(); 


      IsDataLoaded = true; 
     } 

     private SoundGroup CreateNewAddsGroup() 
     { 
      SoundGroup data = new SoundGroup(); 
      data.Title = "New"; 
      string basePath = "assets/audio/newadds/"; 

       data.Items.Add(new SoundData 
      { 
       Title = "Test1", 
       FilePath = basePath + "Test.mp3", 
       Groups = "Alpha" 
      }); 



      data.Items.Add(new SoundData 
      { 
       Title = "Test2", 
       FilePath = basePath + "Test2.mp3", 
       Groups="Bravo" 
      }); 


      data.Items.Add(new SoundData 
      { 
       Title = "Test3", 
       FilePath = basePath + "Test3.mp3", 
       Groups= "Zulu" 
      }); 

    private SoundGroup CreateSoftwareGroup() 
     { 
      SoundGroup data = new SoundGroup(); 

      data.Title = "Software"; 
      string basePath = "assets/audio/Software/"; 

      data.Items.Add(new SoundData 
      { 
       Title = "Test1", 
       FilePath = basePath + "Test.mp3", 
       Groups = "Alpha" 
      }); 

      data.Items.Add(new SoundData 
      { 
       Title = "Test2", 
       FilePath = basePath + "Test2.mp3", 
       Groups="Bravo" 
      }); 


      data.Items.Add(new SoundData 
      { 
       Title = "Test3", 
       FilePath = basePath + "Test3.mp3", 
       Groups= "Zulu" 
      }); 

Вот соответствующие mainpage.cs:

SoundData mvm = new SoundData(); 

      this.LongList.ItemsSource = CustomKeyGroup<SoundData>.GetSoundGroups(mvm.Items); 

SoundGroup:

{ 
    public class SoundGroup 
    { 
     public SoundGroup() 
     { 
      Items = new List<SoundData>(); 
     } 

     public List<SoundData> Items { get; set; } 
     public string Title { get; set; } 
     public string Groups { get; set; } 

    } 
} 

SoundData:

{ 
    public class SoundData : ViewModelBase 
    { 
     public string Title { get; set; } 
     public string FilePath { get; set; } 
     public string Items { get; set; } 
     public string Groups { get; set; } 


     public RelayCommand<string> SaveSoundAsRingtone { get; set; } 


     private void ExecuteSaveSoundAsRingtone(string soundPath) 
     { 
      App.Current.RootVisual.Dispatcher.BeginInvoke(() => 
      { 
       SaveRingtoneTask task = new SaveRingtoneTask(); 
       task.Source = new Uri("appdata:/" + this.FilePath); 
       task.DisplayName = this.Title; 
       task.Show(); 
      } 
       ); 
     } 

     public SoundData() 
     { 
      SaveSoundAsRingtone = new RelayCommand<string>(ExecuteSaveSoundAsRingtone); 
     } 

    } 
} 

ответ

0

До сих пор от I, что может видеть, что вы должны вызывать функцию как низкий

SoundModel svm = new SoundModel(); 
svm.LoadData(); 

this.LongList.ItemsSource = CustomKeyGroup<SoundData>.GetSoundGroups(svm.Software.Items); 

или

this.LongList.ItemsSource = CustomKeyGroup<SoundData>.GetSoundGroups(svm.NewAdds.Items); 

причиной является то, что вам нужно передать в метод GetSoundGroups в Generic.List<.ViewModels.SoundData> и список содержится в SoundGroup классе. Так как ваши загруженные данные находятся в пределах SoundModel, поэтому я мог бы, вероятно, подумать об указанной выше реализации.

+0

Извините, вы не можете упрекать вас, так как у меня пока нет достаточного количества репутации, но это было на месте. Ошибки исчезли, и теперь мне просто нужно настроить заголовки групп и шаблон jumplist. Спасибо, пуштрай! – user3556644

+0

Это здорово, проблема решена. Вы можете принять этот ответ, даже если вы не можете голосовать. Счастливое кодирование :) – pushpraj

Смежные вопросы