Witam serdeczne wszystkich.
Chcę napisać prosty program do zbierania danych po RS232 -jestem kompletnym samoukiem. Początek dodam, że zdecydowałem się z VS 2013 oraz projekt Wpf Application. Mam problem z wyświetlaniem danych w DataGrid, wyświetla się tylko jedna linia danych a kolejne wyniki nadpisują się. Serdecznie proszę o wskazanie mi drogi ;D.
Moja klasa
public class Odczyt
{
public int LP { get; set; }
public int Pomiar { get; set; }
public string Uwagi { get; set; }
public string Jednostka { get; set; }
public string Data { get; set; }
public string Godzina { get; set; }
}
Generowanie losowych wyników
public partial class MainWindow : Window
{
public List<Odczyt> ListaPomiary { get; set; }
public MainWindow()
{
InitializeComponent();
}
int lp;
Random losowyPomiar = new Random();
private void Pomiar()
{
ListaPomiary = null;
ListaPomiary = new List<Odczyt>();
Odczyt pomiar = new Odczyt();
pomiar.LP = ++lp;
pomiar.Pomiar = losowyPomiar.Next(20, 100);
pomiar.Jednostka = "jednostka";
pomiar.Uwagi = "uwaga";
pomiar.Data = DateTime.Now.ToString("dd/MM/yyyy");
pomiar.Godzina = DateTime.Now.ToString("HH:mm:ss");
ListaPomiary.Add(pomiar);
...
Uzupełnianie datagrida
private void Refresh()
{
dgLista.ItemsSource= ListaPomiary;
}
}
Binding
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="277*"/>
<ColumnDefinition Width="86*"/>
<ColumnDefinition Width="33*"/>
</Grid.ColumnDefinitions>
<DataGrid CanUserAddRows="False" Margin="10,108,10,290" Name="dgLista" Background="{x:Null}" Grid.ColumnSpan="3" AutoGenerateColumns="False" AllowDrop="True">
<DataGrid.Columns>
<DataGridTextColumn
Header="Lp."
Width="30"
Binding="{Binding LP}"/>
<DataGridTextColumn
Header="Pomiar"
Width="*"
Binding="{Binding Pomiar}" />
<DataGridTextColumn
Header="Jednostka"
Width="*"
Binding="{Binding Jednostka}"
/>
<DataGridTextColumn
Header="Status"
Width="*"
Binding="{Binding Uwagi}"
/>
<DataGridTextColumn
Header="Data"
Width="*"
Binding="{Binding Data}" />
<DataGridTextColumn
Header="Czas"
Width="*"
Binding="{Binding Godzina}" />
</DataGrid.Columns>
</DataGrid>