【发布时间】:2019-10-28 10:21:25
【问题描述】:
我有一个 WPF 应用程序,其中有两个数据网格。第一个显示专辑,第二个显示对应的歌曲,基于第一个数据网格中的选择。我还可以添加一个相册,然后将其保存到数据库中。现在我想在第一个数据网格中选择一张专辑,然后在第二个数据网格中向该专辑添加一首歌曲。在我的数据库中,所有歌曲都有一个 AlbumID 作为外键。在将歌曲添加到数据库时,我不知道如何处理此参数 AlbumID,我的查询按预期崩溃。 我想知道如何告诉 SongViewModel 添加具有 SelectedAlbum 给出的 AlbumID 的歌曲。
查询添加相册:
public AlbumData AddAlbumEntry(AlbumData albumData)
{
album albumEntry = new album
{
AlbumName = albumData.AlbumName,
Year = albumData.AlbumYear,
};
_context.albums.Add(albumEntry);
_context.SaveChanges();
return new AlbumData
{
AlbumID = albumEntry.AlbumID,
AlbumYear = albumEntry.Year,
AlbumName = albumEntry.AlbumName,
};
}
查询添加歌曲:
public SongData AddSongEntry(SongData songData)
{
song songEntry = new song
{
SongName = songData.SongName,
SongNumber = songData.SongNumber,
};
_context.songs.Add(songEntry);
_context.SaveChanges();
return new SongData
{
SongID = songEntry.SongID,
SongNumber = songEntry.SongNumber,
SongName = songEntry.SongName,
};
}
AlbumViewModel 连接到 View:
public AlbumData AddAlbumEntry(AlbumData albumData)
{
var controller = new BandManagerController();
return controller.AddAlbumEntry(albumData);
}
public void AlbumToDatabase(AlbumData data)
{
AddAlbumEntry(data);
ExecuteCancelCommand();
}
SongViewModel 连接到视图:
public SongData AddSongEntry(SongData songData)
{
var controller = new BandManagerController();
return controller.AddSongEntry(songData);
}
public void SongToDatabase(SongData data)
{
AddSongEntry(data);
ExecuteCancelCommand();
}
我还有一个 SelectedAlbum 属性来填充 SongLists:
public AlbumViewModel SelectedAlbum
{
get
{
return _selectedAlbum;
}
set
{
if (_selectedAlbum != value)
{
_selectedAlbum = value;
}
NotifyPropertyChanged("SelectedAlbum");
}
}
【问题讨论】:
标签: c# wpf entity-framework mvvm