using System.ComponentModel; using Yw.Untity; namespace ISupply.WinFrm.Main { public partial class RegionTreeListLookUpEdit : DevExpress.XtraEditors.XtraUserControl { public RegionTreeListLookUpEdit() { InitializeComponent(); this.treeListLookUpEdit1.EditValueChanged += treeListLookUpEdit1_EditValueChanged; this.treeListLookUpEdit1TreeList.InitialDefaultSettings(); this.treeListLookUpEdit1TreeList.SelectImageList = ImageLib.Lib; this.treeListLookUpEdit1TreeList.OptionsView.ShowIndicator = false; this.treeListLookUpEdit1.Properties.PopupFormSize = new System.Drawing.Size(200, 400); } public class CurrentViewModel : Model.Region { public CurrentViewModel() { } public CurrentViewModel(Model.Region rhs) : base(rhs) { this.ParentID = TreeParentIdsHelper.GetLastParentID(rhs.ParentIds); this.ImageIndex = ImageLib.GetRegionTypeImageIndex(rhs.Type); } public long ParentID { get; set; } public int ImageIndex { get; set; } } /// /// 选择项 /// public Model.Region Selected { get => _selected; } private Model.Region _selected { get; set; } /// /// 选择项变换 /// public event Action SelectedChangedEvent; private BindingList _allBindingList { get; set; } /// /// 绑定数据 /// public void SetBindingData() { _allBindingList = new BindingList(); var list = new BLL.Region().GetAll(); if (list != null && list.Count > 0) { foreach (var item in list) { var vm = new CurrentViewModel(item); _allBindingList.Add(vm); } } this.treeListLookUpEdit1TreeList.DataSource = _allBindingList; this.treeListLookUpEdit1TreeList.ExpandAll(); if (_allBindingList.Count > 0) { var vm = _allBindingList.First(); this.treeListLookUpEdit1.EditValue = vm.ID; SelectedChanged(vm); } } //选择对象变换 private void SelectedChanged(CurrentViewModel vm) { _selected = vm; if (SelectedChangedEvent != null) { this.SelectedChangedEvent(_selected); } } //值变换 private void treeListLookUpEdit1_EditValueChanged(object sender, EventArgs e) { var vm = this.treeListLookUpEdit1TreeList.GetCurrentViewModel(_allBindingList); if (vm != null) { SelectedChanged(vm); } } } }