private void InitListView(ListLogicalView view) { //如果是选择视图,则应该使用显示模型来创建控件。 var resultControl = this._uiFactory.CreateTreeGrid(view.Meta, view.ShowInWhere); //为 ListLogicalView 初始化 ListEditor var listEditor = new TreeGridListEditor(view); listEditor.SetControl(resultControl); view.InitializeEditor(listEditor); }
/// <summary> /// 使用此方法可以把当前 View 的控件替换为所给的控件。 /// <remarks> /// 使用场景:如果期望完全使用全新的表格控件,可以使用这个方法来重新设置视图与控件的绑定。 /// 例如:要实现动态列需求时,需要不断地重新生成表格控件。 /// </remarks> /// </summary> /// <param name="treeGrid"></param> public void ReplaceControl(TreeGrid treeGrid) { var oldControl = this.Control; oldControl.ReplaceInParent(treeGrid); if (oldControl.ContextMenu != null) { treeGrid.ContextMenu = oldControl.ContextMenu; } _listEditor.SetControl(treeGrid); this.SetControl(treeGrid); _listEditor.NotifyContextDataChanged(); }