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