private void AddFieldView(int currRow, IViewComponent childView, ViewBuildersCollection viewBuilders)
 {
     if (childView.UiHint == "RowsPanel")
     {
         var newCtrl = new RowsPanelView();
         newCtrl.SetViewComponent((IPanelViewModel)childView, viewBuilders);
         Grid.SetRow(newCtrl, currRow);
         Grid.SetColumn(newCtrl, 1);
         Grid.SetColumnSpan(newCtrl, 4);
         ChildrenViewsContainer.Children.Add(newCtrl);
     }
     else
     {
         var viewBuilder = viewBuilders.GetBuilder(childView.UiHint);
         if (viewBuilder != null)
         {
             var newCtrl = viewBuilder.ViewFactory(childView);
             if (newCtrl != null)
             {
                 Grid.SetRow(newCtrl, currRow);
                 Grid.SetColumn(newCtrl, 1);
                 if (childView.UiHint == "PivotGridList")
                 {
                     Grid.SetColumnSpan(newCtrl, 4);
                 }
                 ChildrenViewsContainer.Children.Add(newCtrl);
             }
         }
     }
 }
예제 #2
0
        private static UserControl CreateField(IViewComponent childView, ViewBuildersCollection viewBuilders, Grid ChildrenViewsContainer)
        {
            UserControl newCtrl;

            if (childView.UiHint == "RowsPanel")
            {
                newCtrl = new RowsPanelView();
                ((RowsPanelView)newCtrl).SetViewComponent((IPanelViewModel)childView, viewBuilders);
                ChildrenViewsContainer.Children.Add(newCtrl);
            }
            else if (childView.UiHint == "ColumnsPanel")
            {
                newCtrl = new ColumnsPanelView();
                ((ColumnsPanelView)newCtrl).SetViewComponent((IPanelViewModel)childView, viewBuilders);
                ChildrenViewsContainer.Children.Add(newCtrl);
            }
            else
            {
                newCtrl = viewBuilders.GetBuilder(childView.UiHint).ViewFactory(childView);
                if (newCtrl != null)
                {
                    ChildrenViewsContainer.Children.Add(newCtrl);
                }
            }

            return(newCtrl);
        }