0

私はこれを見てきました: http://code.msdn.microsoft.com/wpapps/Custom-LongList-Selector-bf8cb9adそして私のアプリに取り入れようとしています。ただし、データのロード方法が異なるため、少し混乱します。現在、2 つのエラーがあります The best overloaded method match for CustomKeyGroup<.ViewModels.SoundData>.GetSoundGroups(System.Collections.Generic.List<.ViewModels.SoundData>)' has some invalid arguments

引数 1: 'string' から 'System.Collections.Generic.List' に変換できません

エラーは「CustomKeyGroup.GetSoundGroups(mvm.Items);」にあります。mainpage.cs から。私はアイテムが問題であることを知っています。リンクを見ると、listmovie.add を使用してデータを別の方法でロードします。

何かがめちゃくちゃになっていることは知っていますが、データが別の方法でロードされているため、正しく機能させるのに苦労しています。

グループ (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);

サウンドグループ:

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

    }
}

サウンドデータ:

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

    }
}
4

1 に答える 1

0

これまでのところ、以下のように関数を呼び出す必要があることがわかります

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

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

また

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

Generic.List<.ViewModels.SoundData>その理由は、 in メソッドを渡す必要がGetSoundGroupsあり、リストがSoundGroupクラスに含まれているためです。ロードされたデータはSoundModelクラス内にあるため、おそらく上記の実装のみを考えることができます。

于 2014-06-21T07:57:02.023 に答える