I have made a small Project where I have a wcf service and an wpf app to look up weather data in between certain dates. At first, everything was fine, but when I used Databindings, the Datagrid stayed emty. Can someone help me?
//WCF interface:
public interface IService1
{
[OperationContract]
List<WeatherDataContract> GetWeatherData(DateTime start, DateTime end);
}
[DataContract]
public class WeatherDataContract
{
[DataMember]
public int Id { get; set; }
[DataMember]
public DateTime Datum { get; set; }
[DataMember]
public TimeSpan Zeit { get; set; }
[DataMember]
public double Temperatur { get; set; }
[DataMember]
public int Luftdruck { get; set; }
[DataMember]
public int Regen { get; set; }
[DataMember]
public double Wind { get; set; }
[DataMember]
public int Richtung { get; set; }
[DataMember]
public int Feuchtigkeit { get; set; }
}
//WCF service
WeatherDataEntities weatherDataEntities = new WeatherDataEntities();
public List<WeatherDataContract> GetWeatherData(DateTime start, DateTime end)
{
return (from weather in weatherDataEntities.WeatherDatas
where weather.Datum <= end && weather.Datum >= start
select new WeatherDataContract
{
Id = weather.Id,
Datum = (DateTime)weather.Datum,
Zeit = (TimeSpan)weather.Zeit,
Temperatur = (double)weather.Temperatur,
Luftdruck = (int)weather.Luftdruck,
Regen = (int)weather.Regen,
Wind = (int)weather.Wind,
Richtung = (int)weather.Richtung,
Feuchtigkeit = (int)weather.Feuchtigkeit
}).Take(100).ToList();
}
//XAML:
<DataGrid x:Name="weatherDataGrid" HorizontalAlignment="Left" Height="355" Margin="21,35,0,0" VerticalAlignment="Top" Width="742" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}"/>
<DataGridTextColumn Binding="{Binding Datum}"/>
<DataGridTextColumn Binding="{Binding Zeit}"/>
<DataGridTextColumn Binding="{Binding Temperatur}"/>
<DataGridTextColumn Binding="{Binding Luftdruck}"/>
<DataGridTextColumn Binding="{Binding Regen}"/>
<DataGridTextColumn Binding="{Binding Wind}"/>
<DataGridTextColumn Binding="{Binding Richtung}"/>
<DataGridTextColumn Binding="{Binding Feuchtigkeit}"/>
</DataGrid.Columns>
</DataGrid>
<DatePicker SelectedDateChanged="Date_SelectedDateChanged" x:Name="fromDate" HorizontalAlignment="Left" Margin="75,10,0,0" VerticalAlignment="Top" Width="150"/>
<DatePicker SelectedDateChanged="Date_SelectedDateChanged" x:Name="toDate" HorizontalAlignment="Left" Margin="287,9,0,0" VerticalAlignment="Top" Width="136"/>
<Label Content="From" HorizontalAlignment="Left" Margin="33,8,0,0" VerticalAlignment="Top"/>
<Label Content="To" HorizontalAlignment="Left" Margin="260,10,0,0" VerticalAlignment="Top"/>
//xaml.cs
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
public List<ServiceReference1.WeatherDataContract> WeatherData
{
get
{
return client.GetWeatherData(fromDate.SelectedDate ?? DateTime.MinValue, toDate.SelectedDate ?? DateTime.MaxValue).ToList();
}
}
public MainWindow()
{
InitializeComponent();
}
private void Date_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
weatherDataGrid.ItemsSource = WeatherData;
}
}