我是 WP8 开发的新手。我已经学习了几个星期的在线课程,课程的第二个任务是开发一个应用程序来显示天气、一些与城市相关的新闻和照片。到目前为止,我已经按照 MVVM 模式开发了应用程序,使用 Panorama 控件作为我需要显示的不同内容的容器。为了不再这样,我现在面临的问题是显示从 web 服务检索的 xml 数据。
XAML 是:
<phone:panorama x:Name="myPanorama"
DataContext = {Binding Source="WeatherViewModel"}>
<PanoramaItem header="MyWeather">
<Textblock x:name="txtCity"
Text = {Binding Weather.City}
</Textblock>
</PanoramaItem>
<panoramaItem header="Config">
<Text x:Name="txtGetCity"/>
<Button x:Name="btnGetCity"
Command={Binding GetWeatherCommand}/>
</panoramaItem>
</phone:panorama>
我的视图模型:
public class WeaterViewModel : NotificationEnableObject
{
private Weather _currentWeather;
public Weather GetCurrentWeather
{
get
{
if (_currentWeather == null)
_currentWeather = new Weather();
return _currentWeather;
}
set { _currentWeather = value;
OnPropertyChanged("GetCurrentWeather");
}
}
//Constructor ServiceModel serviceModel = new ServiceModel();
public WeatherViewModel()
{
serviceModel.GetWeatherCompleted += (s, a) =>
{
_currentWeather = new Clima();
_currentWeather.City= a.Results[0].City;
_currentWeather.tempC = a.Results[0].tempC;
};
getWeatherCommand = new ActionCommand(null);
}
ActionCommand getWeatherCommand; // ActionCommand derivied from ICommand
public ActionCommand GetWeatherCommand
{
get
{
if (getWeatherCommand!= null)
{
getWeatherCommand = new ActionCommand(() =>
{
//Call the Service who retrieved the data
});
}
return getWeatherCommand;
}
}
}
指定的 Weather 是一个包含 City 属性的公共类。我也尝试过使用 IObservableCollention 但是,结果是一样的:-(
正如您在全景控件中看到的那样,我有 2 个部分。我在其中写下我想看到的城市,以及我展示从 Web 服务获得的信息的部分。
任何线索或帮助将不胜感激
问候!