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,355 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,218 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.
762 questions
{count} votes

12 answers

Sort by: Most helpful
  1. Simon Aigner 1 Reputation point
    2022-05-23T09:33:53.447+00:00

    namespace LinqExample
    {
    public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();
            LoadData();
        }
    
        public void LoadData()
        {
            XElement xElement = XElement.Load(@"..\..\cd_catalog.xml");
            XNamespace ns = "http://tempuri.org/CDCatalog.xsd";
    
            var query = from email in xElement.Descendants(ns + "CD")
                        where email.Element(ns + "TITLE").Value.Contains(fromPersonTextBox.Text)
                        select new CDCatalog()
                        {
                            Title = email.Element(ns + "TITLE").Value,
                            Artist = email.Element(ns + "ARTIST").Value,
                            Country = email.Element(ns + "COUNTRY").Value,
                            Company = email.Element(ns + "COMPANY").Value,
                            Price = email.Element(ns + "PRICE").Value,
                            Year = email.Element(ns + "YEAR").Value
                        };
    
            emailDataGrid.ItemsSource = query;
        }
    
        private void OnTextChanged(object sender, TextChangedEventArgs e)
        {
            LoadData();
        }
    }
    

    }

    0 comments No comments

  2. Simon Aigner 1 Reputation point
    2022-05-23T09:47:27.713+00:00

    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
    public MainWindow()
    {
    InitializeComponent();
    }

        private void Bbutton_Click(object sender, RoutedEventArgs e)
        {
            DdataGrid.ItemsSource = client.GetPerson(TtextBox.Text);
        }
    
    0 comments No comments

  3. Simon Aigner 1 Reputation point
    2022-06-22T20:46:23.317+00:00

    CD

    public partial class frmCDVerwaltung : Form
    {
    public frmCDVerwaltung()
    {
    InitializeComponent();
    sqlDataAdapter1.Fill(dataSet11, "CD");
    }

        private void btnRecreate_Click(object sender, EventArgs e)  
        {  
            if (openFileDialog1.ShowDialog() == DialogResult.OK)  
            {  
                dataSet11.Clear();  
                dataSet11.ReadXml(openFileDialog1.FileName);  
                clearDatabase();  
                updateDatabase();  
            }  
        }  
    
        private void btnUpdate_Click(object sender, EventArgs e)  
        {  
            dataSet11.Clear();  
            sqlDataAdapter1.Fill(dataSet11, "CD");  
        }  
    
        private void btnDelete_Click(object sender, EventArgs e)  
        {  
            if (dataGridView1.SelectedRows != null)  
            {  
                foreach (DataGridViewRow dr in dataGridView1.SelectedRows)  
                {  
                    dataGridView1.Rows.Remove(dr);  
                }  
                updateDatabase();  
            }  
        }  
    
        private void clearDatabase()  
        {  
            SqlCommand cmd = new SqlCommand("delete from CD where 1 = 1", sqlConnection1);  
            sqlConnection1.Open();  
    
            cmd.ExecuteNonQuery();  
    
            sqlConnection1.Close();  
        }  
    
        private void dgvCD_CellEndEdit(object sender, DataGridViewCellEventArgs e)  
        {  
            updateDatabase();          
        }  
    
        private void updateDatabase()  
    	{  
            sqlDataAdapter1.Update(dataSet11, "CD");  
        }  
    
    	private void dgvCD_CellEnter(object sender, DataGridViewCellEventArgs e)  
    	{  
            updateDatabase();  
        }  
    }  
    
    0 comments No comments