ネストされたリストビューを作成する必要があり、その方法に関する素晴らしい記事を見つけましたが、私の状況は少し異なります。私はlinqの初心者で、少し助けが必要です:)
その記事と同様の形式でデータを取得する必要があります (上記のリンクで、「ListView の構成」を検索し、そのすぐ上の表を参照してください)。
ここに私のデータがあります:
Format Movie Name Price
DVD Star Wars 12.99
DVD Star Wars II 13.99
Blue-Ray Star Wars 15.99
Blue-Ray Star Wars II 17.99
これは私が持っているもので、実際にはそれほど近いものではありませんが、私が得ることができる限りです:
var MoviesToBuy = from Movie in dtMovieListDetails.AsEnumerable()
//join MovieDetails in dtMovieListDetails.AsEnumerable() on (string)Movie["ID"] equals (string)MovieDetails["ID"]
group Movie by new
{
Format = Movie["Format"],
Movies = Movie
} into grp
select new
{
Format = (string)grp.Key.Format,
Movies = grp.Key.Movies
};
MoviesToBuy = MoviesToBuy.OrderBy(p => p.Format);
lvwAmazonMovieGroup.DataSource = MoviesToBuy.ToList();
lvwAmazonMovieGroup.DataBind();
3 つの特定の問題/質問があります。
1.) 私が持っているものが機能しません。グループの 2 番目の列はすべての行に相当するため、実際のグループは作成されません。
2.) 以前の問題にもかかわらず、「データ ソースの型が無効です。IListSource、IEnumerable、または IDataSource のいずれかである必要があります」というエラーも表示されます。この場合、Movies 列は DataRow データ型として作成されています。それが問題を引き起こしているのかどうかはわかりません。どうにかそのフィールドにキャストできますか?
3.) どうすれば映画のフィールドをソートできますか? つまり、最終的には、データをフォーマット、次にムービー名でソートして、ネストされたリスト ビューを次のように表示する必要があります。
Blue-Ray
Star Wars 12.99
Star Wars II 13.99
DVD
Star Wars 15.99
Star Wars II 17.99
どんな点でも大歓迎です!
前もってありがとう、チャド