我是WP8開發中的新手。我一直在關注一個在線課程幾個星期,本課程的第二個任務是開發一個應用程序來顯示與城市有關的天氣,一些新聞和照片。 到目前爲止,我已經開發了MVVM模式下的應用程序,使用Panorama控件作爲我需要顯示的不同內容的評判者。 爲了不再這樣做,我面臨的問題是現在顯示從Web服務檢索到的XML數據。綁定在WP8中的MVVM中不起作用
的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;
}
}
}
指定的天氣是包含City屬性一個公共類。我已經嘗試過使用IObservableCollention以及howerver,結果是一樣的:-(
正如你在全景控制中看到的那樣,我有兩個部分,一個是我想要看到的城市,另一個是我想要看的城市顯示我從Web服務中獲得的信息。
任何線索,或幫助將是非常讚賞
祺!
有了這個小小的代碼,只能猜測出現了什麼問題。你可以添加WeatherViewModel類的相關部分(也可能是天氣類)和數據加載的位置? –
嗨Stefan Wexel。我修改了原帖子 – MikePR