Exemplo n.º 1
0
        private void UpdateWidths()
        {
            double x = -3;

            foreach (DataGridColumn col in dataGrid.Columns.OrderBy(c => c.DisplayIndex))
            {
                DataGridColumnHeader hdr = col.Header as DataGridColumnHeader;
                if (hdr != null)
                {
                    HeaderViewModel t = hdr.DataContext as HeaderViewModel;
                    t.Width = col.ActualWidth;
                    t.Left  = x;
                    x      += col.ActualWidth;
                }
            }
            FirePropertyChanged("Items");
        }
Exemplo n.º 2
0
        public MainViewModel(IEnumerable <LogItem> items)
        {
            Dictionary <string, ThreadViewModel> threadDict = new Dictionary <string, ThreadViewModel>();

            GrpHeader  = new HeaderViewModel("", 13, 17);
            IdHeader   = new HeaderViewModel("Id", 10, 25);
            TimeHeader = new HeaderViewModel("Time", 20, 75);
            ItemViewModel previous = null;

            foreach (LogItem item in items)
            {
                ThreadViewModel t;
                if (!threadDict.TryGetValue(item.Thread, out t))
                {
                    t = new ThreadViewModel(item.Thread, this);
                    threadDict.Add(item.Thread, t);
                }



                ItemViewModel e = new ItemViewModel(item, previous, t);
                entries.Add(e);
                if (previous != null && previous.Thread == t)
                {
                    if (previous.Group == null)
                    {
                        previous.Group = new GroupedItemViewModel(t);
                        previous.Group.Add(previous);
                    }
                    e.Group = previous.Group;
                    e.Group.Add(e);
                }

                previous = e;
            }
            threads = threadDict.Values.ToList();
            if (GrpHeader != null)
            {
                headers.Add(GrpHeader);
            }
            headers.Add(IdHeader);
            headers.Add(TimeHeader);
            headers.AddRange(threads);
        }