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