";值不在预期范围内";Window 8 ObservableDictionary错误
本文关键字:quot Window 错误 范围内 ObservableDictionary | 更新日期: 2024-10-23 07:07:55
在异步方法中将值设置为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 生成的
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));
请帮帮我。
这个问题很老,但我遇到了同样的问题,答案可以帮助其他人。
这是因为您的对象this.DefaultViewModel["SpotlightVideos"]
期望一个集合,但您给它一个单独的对象。
我看不到您的XAML,但在我的案例中,DefaultViewModel
项在<Page.Resources>
部分的CollectionViewSource
中有一个引用。