我设计了一个允许将堆栈绑定到TreeView的类,除了我需要反向显示集合外,一切都很好。
这是我的Stack类的代码:
public class Stack<T> : BindingList<T>, ICloneable
{
#region Methods
public void Push(T item)
{
this.Add(item);
}
public T Peek()
{
if (this.Count > 0)
{
T temp = this[this.Count - 1];
return temp;
}
else
return default(T);
}
public T Pop()
{
if (this.Count > 0)
{
T temp = this[this.Count - 1];
this.RemoveAt(this.Count - 1);
return temp;
}
else
return default(T);
}
public ObservableCollection<T> ToObservableCollection()
{
ObservableCollection<T> o = new ObservableCollection<T>();
foreach (T t in this)
{
o.Add(t);
}
return o;
}
public List<T> ToList()
{
return this.ToList<T>();
}
public object Clone()
{
return this.MemberwiseClone();
}
#endregion
public Stack() {
}
}
我这样绑定:
<TreeView ItemsSource="{Binding ListToBind}"/>
如何使用转换器自动撤消项目的顺序?