在异步方法中将值设置为DefaultViewModel时出现错误
async void SpotlightVideo_FadeIn_Completed(object sender, object e)
{
this.DefaultViewModel["SpotlightImageSource"] = (await ExtensionMethods.GetSingleImage(1, SpotlightVideo.Image)).Source;
Spotlight_Videos s = this.DefaultViewModel["SpotlightVideos"] as Spotlight_Videos;
//s.Discription = SpotlightVideo.Discription;
//s.Image = SpotlightVideo.Image;
//s.Video_Id = SpotlightVideo.Video_Id;
//s.Video_Name = SpotlightVideo.Video_Name;
//s.VideoPath = SpotlightVideo.VideoPath;
this.DefaultViewModel["SpotlightVideos"] = SpotlightVideo;
//s = SpotlightVideo;
SpotlightVideo_FadeOut.Begin();
}
mehtod中的第一行运行良好DefaultViewModel["SpotlightImageSource"]
但是this.DefaultViewModel["SpotlightVideos"] = SpotlightVideo;
给我错误:
“价值不在预期范围内。”
但是当我将值设置为单个属性时,它运行正常而没有错误。
当我将整个对象传递给s变量时,它运行时没有错误,但没有按预期给出结果。
我使用ObservableDictionary.cs生成了错误代码和basicallty
private void InvokeMapChanged(CollectionChange change, string key)
{
var eventHandler = MapChanged;
if (eventHandler != null)
{
eventHandler(this, new ObservableDictionaryChangedEventArgs(change, key));
}
}
错误行是:
eventHandler(this, new ObservableDictionaryChangedEventArgs(change, key));
请帮帮我。
答案 0 :(得分:0)
问题已经很久了,但我遇到了同样的问题,答案可以帮助其他人。
这是因为你的对象this.DefaultViewModel["SpotlightVideos"]
期望一个集合,但你给它一个对象。
我没有看到您的XAML,但在我的情况下,DefaultViewModel
项在CollectionViewSource
部分的<Page.Resources>
中有引用。