我希望我的班级以这种方式出现:
而是显示liveSelect
如上。这是我班级的声明:
public class LiveSelect<TSource, TResult> : ReadOnlyBindingList<TResult>, IList, ICollection, IEnumerable
{
//...
}
ReadOnlyBindingList
实现IBindingList
。我错过了什么?
更新:根据 280Z28 的回答,我在哪里解决它:
internal sealed class CollectionDebuggerView<T>
{
readonly ICollection<T> c;
public CollectionDebuggerView(ICollection<T> col)
{
this.c = col;
}
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public T[] Items
{
get { return c.ToArray(); }
}
}
然后,让我的ReadOnlyBindingList<TResult>
类实现ICollection<T>
并添加一些属性,使其看起来像这样:
[DebuggerDisplay("Count={Count}")]
[DebuggerTypeProxy(typeof(CollectionDebuggerView<>))]
public abstract class ReadOnlyBindingList<TResult> : IBindingList, IList, IEnumerable, IEnumerable<TResult>, ICollection, ICollection<TResult>
{
//...
}
请注意,CollectionDebuggerView
需要在构造函数中包含ReadOnlyBindingList
实现的东西(例如ICollection<T>
)。