private void HandleColumnAdded(ColumnVM colVM) { //handling column itself ColumnView view = new ColumnView(); view.DataContext = colVM; //point selection related view.MouseDown += View_MouseDown; view.TouchDown += View_TouchDown; view.TouchMove += View_TouchMove; view.TouchUp += View_TouchUp; view.IsManipulationEnabled = true; view.TouchLeave += View_TouchLeave; view.SizeChanged += View_SizeChanged; ColumnDefinition cd = new ColumnDefinition(); cd.Width = GridLength.Auto; this.ColumnsGrid.ColumnDefinitions.Add(cd); Grid.SetColumn(view, this.ColumnsGrid.ColumnDefinitions.Count - 1); Grid.SetRow(view, 1); this.ColumnsGrid.Children.Add(view); //Handling header ColumnDefinition header_cd = new ColumnDefinition(); header_cd.Width = GridLength.Auto; this.HeadersGrid.ColumnDefinitions.Add(header_cd); RotateTransform headingRotation = new RotateTransform(-90); TextBlock heading = new TextBlock(); heading.Margin = new Thickness(5); heading.HorizontalAlignment = HorizontalAlignment.Center; heading.VerticalAlignment = VerticalAlignment.Center; heading.Text = colVM.Heading; //heading.TextWrapping = TextWrapping.Wrap; //heading.MaxHeight = 200; heading.LayoutTransform = headingRotation; Border textBorder = new Border() { BorderBrush = new SolidColorBrush(Colors.Black), BorderThickness = new Thickness(1) }; textBorder.Child = heading; Grid.SetColumn(textBorder, this.HeadersGrid.ColumnDefinitions.Count - 1); Grid.SetRow(textBorder, 0); this.HeadersGrid.Children.Add(textBorder); }
private void Columns_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.NewItems != null) { if (e.NewItems.Count != 1) { throw new InvalidOperationException(); } ColumnVM colVM = e.NewItems[0] as ColumnVM; HandleColumnAdded(colVM); } }
public ColVMAdapter(ColumnVM target) { vm = target; }