1

IDictionary または ICollection のビジュアライザーを作成しようとしていました

次に、単純なビジュアライザーのように (ダイアログなし。変数をホバーしたときに表示される通常の文字列ビジュアライザーを意味します。下の画像を参照)、カスタム テキストを作成し、コレクションをその型のリストにキャストしたい (IE StringCollection to List (Of String) または List) を作成すると、ビジュアライザーで表示できます。または辞書の場合、キーと値のビジュアライザーをリストに表示します。

実装方法や開始方法についてのアイデアはありますか?

すぐに質問を更新します。

これは私が考えたことです:

using System.Collections.Specialized;
using System.Collections;

namespace ConsoleApplication2
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.Collections.Specialized.StringCollection collection = new StringCollection();
            collection.AddRange(new string[] { "string1", "string2", "sting3" });
            string[] visualizable = collection.ConvertToVisualizableList();

            Dictionary<string,string> dic = new Dictionary<string,string>
            {
              {"key1","value"},
              {"key2","value"}
            };
            string[,]      visualizable2 = dic.ConvertToVisualizableDictionary();



        }

        static string[] ConvertToVisualizableList(this IList collection)
        {
            lock (collection)
            {
                if (collection == null) return null;
                int length = collection.Count;
                string[] list = new string[length];

                for (int i = 0; i < length; i++)
                {
                    object item = collection[i];
                    if (item != null) list[i] = item.ToString();
                }

                return list.ToArray();
            }
        }

        static string[,] ConvertToVisualizableDictionary(this IDictionary dictionary)
        {
            if (dictionary == null) return null;
            int length = dictionary.Count;
            string[,] list = new string[length, 2];

            int i = 0;
            foreach (object item in dictionary.Keys)
            {
                list[i, 0] = item.ToString();
                object value = dictionary[item];
                if(value!=null) list[i, 1] = value.ToString();
                i++;
            }
            return list;
        }
    }
}

これらは、配列および多次元配列用の VS ビジュアライザーです。

代替テキスト

ICollection(またはIList)、IDictionaryなどに似たものを使いたい.

配列では、ビジュアライザーはネストされたすべてのオブジェクトを表示することに注意してください。 これは実際に私が達成したいことです:

d.

List を視覚化してみると、プライベート値 _items があることがわかり、その項目を確認できます。コレクションと辞書で同様のことを達成したいと考えています。

4

2 に答える 2

1

Code Project には多くの例があります。これは私が最も経験を積んだものです: DataSet Visualizer

私はそれを自分でインストールして使用したので、動作することを知っています。これは、実際には ADO データ セット全体を表示するため、必要以上に高度ですが、コードは簡単に変更できるはずです。

他にもいくつかのリンクがあります。

プロジェクト1

プロジェクト 2

于 2009-08-18T14:47:12.780 に答える
0

すでに存在するものを見つけました:

http://www.codeproject.com/KB/macros/ListVisualizer.aspx、それでもオブジェクトは表示されません。

于 2009-08-19T19:11:43.817 に答える