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);
}
}
}