using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; namespace Sheng.Winform.Controls { /// /// /// public class ShengListViewItem { #region 私有成员 #endregion #region 受保护的成员 private ShengListViewItemCollection _ownerCollection; internal ShengListViewItemCollection OwnerCollection { get { return _ownerCollection; } set { _ownerCollection = value; } } #endregion #region 公开属性 /// /// /// public int Index { get { return _ownerCollection.IndexOf(this); } } private ShengListViewItemState _state = ShengListViewItemState.None; /// /// 该项当前的选中状态 /// public ShengListViewItemState State { get { return _state; } } /// /// /// public bool Selected { get { return (_state & ShengListViewItemState.Selected) == ShengListViewItemState.Selected; } set { bool selected = Selected; if (value) _state |= ShengListViewItemState.Selected; else _state ^= ShengListViewItemState.Selected; if (selected != Selected) Render(); } } /// /// /// public bool Hovered { get { return (_state & ShengListViewItemState.Hovered) == ShengListViewItemState.Hovered; } set { bool hovered = Hovered; if (value) _state |= ShengListViewItemState.Hovered; else _state ^= ShengListViewItemState.Hovered; if (hovered != Hovered) Render(); } } /// /// /// public bool Focused { get { return (_state & ShengListViewItemState.Focused) == ShengListViewItemState.Focused; } set { bool focused = Focused; if (value) _state |= ShengListViewItemState.Focused; else _state ^= ShengListViewItemState.Focused; if (focused != Focused) Render(); } } private readonly object _value; /// /// 所绑定的对象 /// public object Value { get { return _value; } } #endregion #region 构造 /// /// /// /// public ShengListViewItem(object value) { _value = value; } #endregion #region 私有方法 private void Render() { _ownerCollection.Owner.RenderItem(this); } #endregion } }