namespace HStation.WinFrmUI { public partial class XhsProjectSimulationL3d2Ctrl : DevExpress.XtraEditors.XtraUserControl { public XhsProjectSimulationL3d2Ctrl() { InitializeComponent(); } /// /// 选择组件改变事件 /// public event Action> SelectedPartersChangedEvent; //获取水力信息方法 private Func _hydroInfoFunc = null; //获取展示器 private Yw.WinFrmUI.Hydro.ViewerL3d2 GetViewer() { if (_viewer == null) { _viewer = new Yw.WinFrmUI.Hydro.ViewerL3d2(); _viewer.Dock = DockStyle.Fill; _viewer.SelectionChangedEvent += (visuals) => { var codes = visuals?.Select(x => x.Id).Distinct().ToList(); this.SelectedPartersChangedEvent?.Invoke(codes); }; } return _viewer; } //Q3d绘制器 private Yw.WinFrmUI.Hydro.ViewerL3d2 _viewer = null; /// /// 初始化数据 /// public void InitialData(Func hydroInfoFunc) { _hydroInfoFunc = hydroInfoFunc; var viewer = GetViewer(); this.Controls.Clear(); this.Controls.Add(viewer); LoadData(); } //加载数据 private void LoadData() { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return; } var network =HStation.WinFrmUI.HydroL3d2TransferHelper.ToL3d2NetworkViewModel(hydroInfo); var viewer = GetViewer(); viewer.Initial(network); } } }