Databindings are not working

noname 6 Reputation points
2022-05-22T19:42:59.943+00:00

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;
        }
    }
.NET
.NET
Microsoft Technologies based on the .NET software framework.
3,472 questions
C#
C#
An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
10,408 questions
XAML
XAML
A language based on Extensible Markup Language (XML) that enables developers to specify a hierarchy of objects with a set of properties and logic.
772 questions
{count} votes

12 answers

Sort by: Most helpful
  1. Matthias Gassner 1 Reputation point
    2022-06-23T08:01:16.03+00:00

    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
    DataSet ds = new DataSet();

        public MainWindow()  
    	{  
    		InitializeComponent();  
    		ds = client.GetData();  
            dgv.ItemsSource = ds.Tables["CD"].DefaultView;  
    	}  
    
    	private void refresh_Click(object sender, RoutedEventArgs e)  
    	{  
            ds = client.GetData();  
            dgv.ItemsSource = ds.Tables["CD"].DefaultView;  
    	}  
    
    	private void update_Click(object sender, RoutedEventArgs e)  
    	{  
    		client.UpdateData(ds);  
    	}  
    
      
    
    0 comments No comments