12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using System.Windows;
- using System.Windows.Controls;
- using Vinno.vCloud.ReportTemplate.ViewModel.ViewModels;
- namespace vStation.Presentation.ReportTemplate
- {
- /// <summary>
- /// Interaction logic for TableView.xaml
- /// </summary>
- public partial class TableView
- {
- public TableView()
- {
- InitializeComponent();
- }
- private void TableView_OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
- {
- if (e.NewValue is GridViewModel gridViewModel)
- {
- Grid.Children.Clear();
- Grid.ColumnDefinitions.Clear();
- Grid.RowDefinitions.Clear();
- foreach (var rtRowDefinition in gridViewModel.RowDefinitions)
- {
- var rowDefinition = new RowDefinition
- {
- DataContext = rtRowDefinition,
- Height = GridLength.Auto,
- MinHeight = rtRowDefinition.Height * 4 / 3
- };
- Grid.RowDefinitions.Add(rowDefinition);
- }
- foreach (var rtColumnDefinition in gridViewModel.ColumnDefinitions)
- {
- var columnDefinition = new ColumnDefinition
- {
- DataContext = rtColumnDefinition
- };
- if (rtColumnDefinition.Width > 0)
- {
- columnDefinition.Width = new GridLength(rtColumnDefinition.Width*4/3);
- }
- Grid.ColumnDefinitions.Add(columnDefinition);
- }
- foreach (var cell in gridViewModel.Cells)
- {
- var cellPosition = cell.Key;
- var cellView = new CellView { DataContext = cell.Value };
- Grid.Children.Add(cellView);
- Grid.SetColumn(cellView, cellPosition.Column);
- Grid.SetRow(cellView, cellPosition.Row);
- Grid.SetColumnSpan(cellView, cellPosition.ColumnSpan);
- Grid.SetRowSpan(cellView, cellPosition.RowSpan);
- }
- }
- }
- }
- }
|