クラスをこのように表示したい:
しかし、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>
。