我在这里和网络上进行了一些搜索,但要么我使用了错误的关键字,要么 MVVM 上的大多数示例只处理一个模型。
我的项目中有两个模型(MVVM 上的自学项目), 歌曲模型和艺术家模型。到目前为止,能够将列表视图与信息集合(来自歌曲)绑定,这样当用户单击列表视图上的一行时,有关歌曲的信息会填充在几个文本框控件中。
我面临的问题是如何在两个模型之间进行通信?如果我们将模型视为具有列/字段的表,那么我应该能够创建对艺术家模型(外键)的引用,但我没有得到的是当我 cilck 时如何检索有关艺术家的信息在列表视图中他的歌曲?
长话短说,我喜欢在列表视图中单击显示歌曲列表的一行,然后获取其歌手/艺术家的照片、他的真实姓名等。我没有遵循如何查找相关数据背后的概念艺术家模型中的歌曲。
任何建议都会受到赞赏。
这就是我现在所拥有的:
public class Song
{
string _singerId;
string _singerName;
string _songName;
string _songWriter;
string _genre;
int _songYear;
Artist artistReference;
然后我有:
public class Artist
{
string _artistBirthName;
string _artistNationality;
string _artistImageFile;
DateTime _artistDateOfBirth;
DateTime _artistDateOfDeath;
bool _isArtistAlive;
谢谢。
编辑:
以下是我提供信息的方式:
问题是如何在歌曲收藏中插入艺术家参考?
Artists = new ObservableCollection<Artist>()
{
new Artist() { ArtistBirthName = "Francis Albert Sinatra", ArtistNickName = "Ol' Blue Eyes", ArtistNationality = "American", ... },
new Artist() { ArtistBirthName = "Elvis Aaron Presley", ArtistNickName = "", ArtistNationality = "American", ... },
new Artist() { ArtistBirthName = "James Paul McCartney", ArtistNickName = "", ArtistNationality = "British", ... },
new Artist() { ArtistBirthName = "Thomas John Woodward", ArtistNickName = "", ArtistNationality = "British", ... }
};
//later read it from xml file or a table.
Songs = new ObservableCollection<Song>()
{
new Song() {ARTIST INFO GOES HERE? HOW?, SingerName = "Fank Sinatra", SongName="Fly me to the Moon", SongWriterName="Bart Howard", Genre="Jazz" ,YearOfRelease= 1980 },
new Song() {SingerName = "Elvis Presley", SongName="Can't Help Falling in Love", SongWriterName="Paul Anka", Genre="Pop", YearOfRelease= 1969},
new Song() {SingerName = "The Beatles", SongName="Let It Be", SongWriterName="John Lennon", Genre="Rock", YearOfRelease= 1970},
new Song() {SingerName = "Tom Jones", SongName="Its Not Unusual", SongWriterName="Les Reed & Gordon Mills", Genre="Pop" , YearOfRelease= 1965}
};