namespace HStation.WinFrmUI { public partial class XhsProjectSimulationQ3dCtrl : DevExpress.XtraEditors.XtraUserControl { public XhsProjectSimulationQ3dCtrl() { InitializeComponent(); } /// /// 选择组件改变事件 /// public event Action> SelectedPartersChangedEvent; //获取水力信息方法 private Func _hydroInfoFunc = null; //获取绘制器 private Yw.WinFrmUI.Q3d.Drawer GetDrawer() { if (_drawer == null) { _drawer = new Yw.WinFrmUI.Q3d.Drawer(); _drawer.Dock = DockStyle.Fill; _drawer.SelectedObjectsChanged += (sender, obj) => { var codes = obj?.Select(x => x.ID).Distinct().ToList(); this.SelectedPartersChangedEvent?.Invoke(codes); }; } return _drawer; } //Q3d绘制器 private Yw.WinFrmUI.Q3d.Drawer _drawer = null; /// /// 初始化数据 /// public void InitialData(Func hydroInfoFunc) { _hydroInfoFunc = hydroInfoFunc; var drawer = GetDrawer(); this.Controls.Clear(); this.Controls.Add(drawer); LoadData(); } //加载数据 private void LoadData() { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return; } var network = Yw.WinFrmUI.HydroQ3dTransferHelper.ToNetworkViewModel(hydroInfo); var drawer = GetDrawer(); drawer.SetData(network); } } }