| | |
| | | public XhsProjectSimulationQ3dCtrl() |
| | | { |
| | | InitializeComponent(); |
| | | this.drawer1.SelectedObjectsChanged += Drawer1_SelectedObjectsChanged; |
| | | } |
| | | |
| | | public event Action<string> ClickParterEvent; |
| | | /// <summary> |
| | | /// 选择组件改变事件 |
| | | /// </summary> |
| | | public event Action<List<string>> SelectedPartersChangedEvent; |
| | | |
| | | //获取水力信息方法 |
| | | private Func<Yw.Model.HydroModelInfo> _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; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | public void SetBindingData(Yw.Model.HydroModelInfo rhs) |
| | | public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) |
| | | { |
| | | |
| | | var netWork = Yw.WinFrmUI.HydroQ3dTransferHelper.ToNetworkViewModel(rhs); |
| | | |
| | | this.drawer1.SetData(netWork); |
| | | _hydroInfoFunc = hydroInfoFunc; |
| | | var drawer = GetDrawer(); |
| | | this.Controls.Clear(); |
| | | this.Controls.Add(drawer); |
| | | LoadData(); |
| | | } |
| | | |
| | | private void Drawer1_SelectedObjectsChanged(object sender, List<Yw.WinFrmUI.Q3d.IBaseViewModel> e) |
| | | //加载数据 |
| | | private void LoadData() |
| | | { |
| | | this.ClickParterEvent?.Invoke(e.FirstOrDefault()?.ID); |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var network = Yw.WinFrmUI.HydroQ3dTransferHelper.ToNetworkViewModel(hydroInfo); |
| | | var drawer = GetDrawer(); |
| | | drawer.SetData(network); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |