2013-07-30 2 views
6

Возможно ли визуализировать объект (его свойства вместе с их значениями) и распечатать его (сбрасывать - похоже на сериализацию) в элемент управления WPF, например TreeView или PropertyGrid, для проверки объект?Визуализировать свойства объекта в элементе управления WPF

Цель состоит в том, чтобы отображать содержимое любого произвольного объекта (не только для целей отладки).

Для получения дополнительных пояснений: Я не ищу никаких инструментов для отладки или способов отображения визуального дерева WPF. Этот вопрос частично связан с WPF -> WPF - это только среда для отображения дампа объекта, поскольку элементы управления могут различаться между WPF и WinForms.

Выход должен быть иерархическим для вложенных экземпляров объектов, списки и т.д.

Object Visualization

+0

возможного дубликата http://stackoverflow.com/q/38642/1817791) – makc

+0

Вы ищете WPF-версию сетки свойств? –

ответ

2

Я считаю, что вы ищете является System.Diagnostics.DebuggerDisplayAttribute

+1

Это полезно для суммирования содержимого объекта в одной строке, но, как правило, очень плохо для создания иерархических представлений. Я думаю, что что-то похожее на визуализатор будет более подходящим инструментом отладки. – JaredPar

+0

К сожалению, это не имеет никакого отношения к моему вопросу. Я был неясен в разработке того, что именно я хочу, - см. Мое редактирование. :) – Atrotygma

5

Я думаю, вы должны взглянуть на Snoop

Эта программа позволит вам перемещаться по дереву WPF любого запущенного приложения. Отладка не требуется для этого инструмента, и возможно, что инструмент не работает с отладкой. Обычно я использую его в сценариях без отладки, чтобы увидеть, как на самом деле выложены мои элементы управления WPF, и какие значения они имеют для различных свойств.

+2

snoop - отличный инструмент – dkackman

+0

@ dkackman - умный парень. – cplotts

+0

К сожалению, это не имеет никакого отношения к моему вопросу. Я был неясен в разработке того, что именно я хочу, - см. Мое редактирование. :) – Atrotygma

2

Вы имеете в виду, кроме WPF Tree Visualizer? есть Mole, который уже не является бесплатным, но очень хороший.

Редактировать:

Чтение редактируемого вопроса. Вы явно называете PropertyGrid, я так понимаю, вы уже пробовали Extended WPF Toolkit's PropertyGrid?

+0

К сожалению, это не имеет никакого отношения к моему вопросу. Я был неясен в разработке того, что именно я хочу, - см. Мое редактирование. :) – Atrotygma

+0

Отредактировал свой ответ, посмотрим, что именно вы ищете. –

0

Значит, вам нужен элемент управления, который отображает во время выполнения поля класса. Вы найдете много статей по этому поводу, ища «Сетка свойств». Это не то, что вы хотите, а начало. Вы в основном итерации через отражение над полями класса и отображаете их в ListView/TreeView. Но это было трудное начало, определяющее, какие поля показывать и которые скрывать, обрабатывать разными типами и примитивами и позволять редактировать их с преобразованием типов (например, строка в Rect, point, color и т. Д.) - это очень сложный вопрос. This control может дать вам хорошую отправную точку.

0

Существуют различные существующие элементы управления, которые позволяют просматривать свойства как Property Grid.

http://www.codeproject.com/Articles/87715/Native-WPF-4-PropertyGrid

https://wpftoolkit.codeplex.com/wikipage?title=PropertyGrid

https://wpg.codeplex.com/

Основываясь на сложности, лицензии и функции, которые они представляют, вам придется выбрать один, все они свободны наверняка.

0

Я искал ответ на это в течение нескольких месяцев; Snoop, Spy и все остальные не работали для меня из-за нарушений прав на нить.

Microsoft имеет Windows-инструмент, который позволяет выбрать любую работу элементов пользовательского интерфейса и просматривать доступность данных элемента:

inspect.exe 

https://msdn.microsoft.com/en-us/library/dd318521(VS.85).aspx

Он доступен в комплектах разработчика программного обеспечения Windows, которые должны быть скачал и установил, и расположен в:

C:\Program Files\x86\(win-version)\bin\(cpu-architecture)\inspect.exe 
Смежные вопросы