我正在制作一个WPF天气应用程序,并且在将数据绑定到我的Listview时遇到了问题 . 我查看了教程,但我发现的只是包含一个类的基本示例 . 这是我的C#代码:
[Serializable, XmlRoot("Cities")]
public class Cities
{
[XmlElement("City")]
public List<City> CitiesList { get; set; }
}
//[XmlElement("DailyForecast")]
//public List<DailyForecast> daily_forecast = new List<DailyForecast>();
public class DailyForecast
{
[XmlElement]
public string Day { get; set; }
[XmlElement]
public int Temperature { get; set; }
[XmlElement]
public string Humidity { get; set; }
[XmlElement]
public string Weather { get; set; }
}
public class HourForecast
{
[XmlElement]
public string Day { get; set; }
[XmlElement]
public int Temperature { get; set; }
[XmlElement]
public string Humidity { get; set; }
[XmlElement]
public string Weather { get; set; }
}
public class Statistics
{
[XmlElement]
public string Month { get; set; }
[XmlElement]
public int TempAvg { get; set; }
[XmlElement]
public int TempMax { get; set; }
[XmlElement]
public int TempMin { get; set; }
}
public class City : INotifyPropertyChanged
{
[XmlElement("DailyForecast")]
public List<DailyForecast> daily_forecast = new List<DailyForecast>();
[XmlElement("HourForecast")]
public List<HourForecast> hour_forecast = new List<HourForecast>();
[XmlElement("Statistics")]
public List<Statistics> stats = new List<Statistics>();
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info));
}
}...
City类包含三个列表,我试图以某种方式链接到XAML中的ListView元素 . XML文件如下所示:
<Cities>
<City>
<!--Začetek dnevne napovedi-->
<DailyForecast>
<Day>Ponedeljek</Day>
<Temperature>17</Temperature>
<Humidity>65%</Humidity>
<Weather>Soncno</Weather>
</DailyForecast>
<DailyForecast>
<Day>Torek</Day>
<Temperature>17</Temperature>
<Humidity>65%</Humidity>
<Weather>oblacno</Weather>
</DailyForecast>
<HourForecast>
<Day>0:00</Day>
<Temperature>22</Temperature>
<Humidity>55%</Humidity>
<Weather>oblacno</Weather>
</HourForecast>
<HourForecast>
<Day>1:00</Day>
<Temperature>22</Temperature>
<Humidity>55%</Humidity>
<Weather>oblacno</Weather>
</HourForecast>
<Statistics>
<Month>Januar</Month>
<TempAvg>25</TempAvg>
<TempMax>30</TempMax>
<TempMin>10</TempMin>
</Statistics>
<Statistics>
<Month>Februar</Month>
<TempAvg>25</TempAvg>
<TempMax>30</TempMax>
<TempMin>10</TempMin>
</Statistics>
</City>
</Cities>
对于ListView,我将ItemsSource用于绑定,并将ListView.Template放在ListViewItems周围:
<ListView Grid.Column="4" Grid.Row="0" Name="vreme_7dni" MouseDoubleClick="vreme_7dni_MouseDown" Grid.ColumnSpan="2" ItemsSource="{Binding City.daily_forecast}">
<ListView.ItemTemplate>
<DataTemplate>
<ListViewItem>
<StackPanel>
<TextBlock Text="{Binding Day}"></TextBlock>
<TextBlock Text="{Binding Temperature}"></TextBlock>
<TextBlock Text="{Binding Humidity}"></TextBlock>
<TextBlock Text="{Binding Weather}"></TextBlock>
</StackPanel>
</ListViewItem>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我已经链接了包含温度,湿度等所有对象的List . 我在City中为每个List都有三个ListView,它们都被ItemTemplate / DataTemplate包围,但是当我加载XML文件时没有显示任何内容 .
我很感激一些反馈,因为我在WPF中是一个巨大的菜鸟,对于大块的代码也很抱歉,我希望我的问题尽可能清楚 . 谢谢!