namespace HStation.WinFrmUI { public partial class SetXhsProjectMapLocationWizardPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPageAsync { public SetXhsProjectMapLocationWizardPage() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); this.mapSetSimpleMarkerContainer1.LoadCompletedEvent += MapSetSimpleMarkerContainer1_LoadCompletedEvent; this.mapSetSimpleMarkerContainer1.SetMarkerEvent += MapSetSimpleMarkerContainer1_SetMarkerEvent; } /// /// 页面状态发生改变事件 /// public event Action PageStateChangedEvent; private ImportXhsProjectViewModel _vm = null;//操作对象 private bool _isInitialize = false;//是否初始化 /// /// 初始化 /// public async void InitialPage(ImportXhsProjectViewModel vm) { if (_isInitialize) { return; } _vm = vm; _isInitialize = true; this.txtAddress.EditValue = vm.Project.Address; await this.mapSetSimpleMarkerContainer1.InitialContainer(); } /// /// 是否允许上一步 /// public bool AllowPrev { get { return true; } } /// /// 是否允许下一步 /// public bool AllowNext { get { return true; } } /// /// 是否允许取消 /// public bool AllowCancel { get { return true; } } /// /// 是否允许完成 /// public bool AllowComplete { get { return false; } } /// /// 能否上一步 /// public Task CanPrev() { return Task.Run(() => true); } /// /// 能否下一步 /// public Task CanNext() { return Task.Run(() => { if (string.IsNullOrEmpty(_vm.Project.Address)) { _vm.Project.Address = this.txtAddress.Text.Trim(); } return true; }); } /// /// 能否取消 /// public Task CanCancel() { return Task.Run(() => true); } /// /// 能否完成 /// public Task CanComplete() { return Task.Run(() => false); } //地图加载完成 private async void MapSetSimpleMarkerContainer1_LoadCompletedEvent() { if (!_isInitialize) { return; } if (_vm.MapInfo != null) { var marker = Yw.Model.Map.Marker.ToModel(_vm.MapInfo.Position); if (marker != null) { await this.mapSetSimpleMarkerContainer1.LoadMarker(marker); if (string.IsNullOrEmpty(this.txtAddress.Text.Trim())) { this.txtAddress.EditValue = marker.Address; } } } } //设置位置 private void MapSetSimpleMarkerContainer1_SetMarkerEvent(Yw.Model.Map.Marker obj) { if (!_isInitialize) { return; } if (_vm.MapInfo == null) { _vm.MapInfo = new Yw.Vmo.MapInfoVmo(); _vm.MapInfo.ObjectType = HStation.Xhs.DataType.XhsProject; _vm.MapInfo.ObjectID = _vm.Project.ID; _vm.MapInfo.ObjectName = _vm.Project.Name; _vm.MapInfo.Purpose = Yw.Map.Purpose.Location; _vm.MapInfo.Kind = Yw.Map.Kind.Gaodei; _vm.MapInfo.Shape = Yw.Map.Shape.Marker; } _vm.MapInfo.Position = obj.ToJson(); this.txtAddress.EditValue = obj.Address; } } }