菜鸟问题可能。我正在开发一个 mvm wp7 应用程序,其中地图显示了沙龙的图钉。从链接中检索数据库。
我正在努力解决的问题是未从 App._ViewModel 加载可观察的集合数据(其中 json 序列化程序解析数据库并且工作正常)。在调试应用程序时会显示一个简单的地图,仅此而已。从数据库返回字符串属性会导致该代码中断。我也尝试过消息框来显示字符串,但仍然崩溃。
继承人的代码:
主视图模型.cs
公共类 MainViewModel {
public bool IsDataLoaded { get; 私人套装;}public ObservableCollection<SalonViewModel> SalonCollection { get; private set; } public MainViewModel() { IsDataLoaded = false; } public ObservableCollection<SalonViewModel> LoadData() { SalonCollection = new ObservableCollection<SalonViewModel>(); var wednesday = new Uri("http://blehbleh.txt"); WebClient wc = new WebClient(); wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted); wc.OpenReadAsync(wednesday); return SalonCollection; } public void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { try { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(ObservableCollection<SalonViewModel>)); ObservableCollection<SalonViewModel> list = serializer.ReadObject(e.Result) as ObservableCollection<SalonViewModel>; foreach (SalonViewModel b in list) { SalonCollection.Add(new SalonViewModel { sid=b.sid,sname=b.sname,sgeo_lat=b.sgeo_lat,sgeo_lon=b.sgeo_lon, } this.IsDataLoaded = true; } catch (Exception ex) { //throw ex; MessageBox.Show(ex.Message); } }
应用程序.cs
公共部分类应用程序:应用程序{
private static MainViewModel viewModel; public static MainViewModel _viewModel { get { if (viewModel == null) { viewModel = new MainViewModel(); } return viewModel; } } void LoadData() { if (!_viewModel.IsDataLoaded) { _viewModel.LoadData(); } }
ETC
这是mappage.cs
私人无效沙龙地图加载(对象发送者,RoutedEventArgs e){
foreach (SalonViewModel Salon in App._viewModel.LoadData) { MessageBox.Show(Salon.sname); Pushpin p = new Pushpin(); p.Content = Salon.sname + System.Environment.NewLine + "Rate: "; Layer.AddChild(p, new GeoCoordinate(Salon.sgeo_lon, Salon.sgeo_lat)); } Map1.Children.Add(Layer); }