我正在使用Windows Phone应用程序和我的应用程序从Web服务获取数据,有时当连接不好时会出现错误而不显示数据,所以我在我的应用程序和应用程序中添加了一个刷新按钮从mainviewmodel调用loaddata但没有任何反应,出了什么问题?
MainViewModel mv = new MainViewModel();
private void refreshButton_Click(object sender, EventArgs e)
{
mv.LoadData();
}
这是我的mainviewmodel.cs中的loadData()
public void LoadData()
{
Geolocator geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 50;
try
{
Geoposition position =
await geolocator.GetGeopositionAsync(
TimeSpan.FromMinutes(1),
TimeSpan.FromSeconds(30));
center = new GeoCoordinate(
position.Coordinate.Latitude,
position.Coordinate.Longitude);
latitude = position.Coordinate.Latitude;
longitude = position.Coordinate.Longitude;
UpdateTransport();
}
catch (UnauthorizedAccessException)
{
MessageBox.Show("Location is disable in phone settings.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
this.IsDataLoaded = true;
}
答案 0 :(得分:1)
我猜测您网页的DataContext是MainViewModel
对象。在这种情况下,您应该调用DataContext的LoadData
而不是“创建新的MainViewModel
对象,然后调用新创建的MainViewModel's LoadData
”。因为页面显示来自它的DataContext的数据。如果我认为情况正确,您的刷新按钮代码应该是这样的:
private void refreshButton_Click(object sender, EventArgs e)
{
var vm = (MainViewModel)this.DataContext;
vm.LoadData();
}
如果您在INotifyPropertyChanged
中正确实施了MainViewModel
,则会看到该网页已更新。