示例#1
0
            public DataModel(OBDHistoryDataModel.OBDParam item)
            {
                Item = item;
                TimeSpan ts = new TimeSpan(item.Time.H, item.Time.M, item.Time.S);

                Seconds = (int)ts.TotalSeconds;
            }
        private void BuildData()
        {
            List <TimeModel> times = _data.Data.Select(p => p.Time).Distinct().ToList();

            foreach (var item in times)
            {
                List <OBDHistoryDataModel.OBDParam> temp = _data.Data.Where(p => p.Time.H == item.H && p.Time.M == item.M && p.Time.S == item.S).ToList();
                this.Dispatcher.BeginInvoke(new Action(() =>
                {
                    StackPanel sp = new StackPanel
                    {
                        Orientation = System.Windows.Controls.Orientation.Horizontal
                    };
                    sp.Children.Add(new TextBlock
                    {
                        VerticalAlignment = System.Windows.VerticalAlignment.Center,
                        Text  = item.ToString(),
                        Width = 100
                    });

                    foreach (var pid in _pids)
                    {
                        OBDHistoryDataModel.OBDParam pd = temp.Where(p => p.Code == pid).FirstOrDefault();
                        if (pd != null)
                        {
                            sp.Children.Add(new TextBlock
                            {
                                VerticalAlignment = System.Windows.VerticalAlignment.Center,
                                Text          = pd.Vol.ToString(),
                                Width         = 80,
                                TextAlignment = TextAlignment.Center,
                                Margin        = new Thickness(5, 0, 5, 0)
                            });
                        }
                        else
                        {
                            sp.Children.Add(new Border
                            {
                                VerticalAlignment = System.Windows.VerticalAlignment.Center,
                                Margin            = new Thickness(5, 0, 5, 0),
                                Width             = 80
                            });
                        }
                    }
                    stkData.Children.Add(sp);
                }));
                Thread.Sleep(1);
            }
        }
 internal void Update(OBDHistoryDataModel.OBDParam el)
 {
     Data.Add(el);
 }