namespace HStation.WinFrmUI
|
{
|
public partial class XhsProjectSimulationQ3dCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public XhsProjectSimulationQ3dCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <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 InitialData(Func<Yw.Model.HydroModelInfo> 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);
|
}
|
|
|
|
|
}
|
}
|