2013-07-30 12 views
6

È possibile visualizzare un oggetto (le relative proprietà insieme ai relativi valori) e stamparlo (eseguirne il dump - simile alla serializzazione) a un controllo WPF, come TreeView o PropertyGrid per ispezionare il oggetto?Visualizzare le proprietà dell'oggetto in un controllo WPF

L'obiettivo è visualizzare il contenuto di qualsiasi oggetto arbitrario (non solo per scopi di debug).

Per ulteriori chiarimenti: non sto cercando strumenti di debug o modi per mostrare l'albero visivo di WPF. Questa domanda ha solo parzialmente qualcosa a che fare con WPF -> WPF è solo il supporto per visualizzare l'oggetto dump perché i controlli possono variare tra WPF e WinForms.

L'uscita dovrebbe essere gerarchico per istanze di oggetti annidati, elenchi ecc

Object Visualization

+0

possibile duplicato http://stackoverflow.com/q/38642/1817791) – makc

+0

Stai cercando una versione WPF della griglia di proprietà? –

risposta

2

Credo che ciò che si sta cercando è la System.Diagnostics.DebuggerDisplayAttribute

+1

È utile per riepilogare i contenuti di un oggetto in una singola riga, ma generalmente è molto scarso per la creazione di viste gerarchiche. Penso che qualcosa sulla falsariga di un visualizzatore sarebbe uno strumento di debug più appropriato – JaredPar

+0

Sfortunatamente, non ha nulla a che fare con la mia domanda. Non sono stato ben chiaro nell'elaborare su cosa esattamente voglio - per favore vedi la mia modifica. :) – Atrotygma

5

penso che si dovrebbe dare un'occhiata a Snoop

Questo programma consentirà di esplorare l'albero WPF di qualsiasi applicazione in esecuzione. Il debug non è richiesto per questo strumento ed è possibile che lo strumento non funzioni con il debug. In genere lo utilizzo in scenari non di debug per vedere come sono effettivamente disposti i miei controlli WPF e quali valori hanno per varie proprietà

+2

snoop è uno strumento eccellente – dkackman

+0

@dkackman è un ragazzo intelligente. – cplotts

+0

Sfortunatamente, non ha niente a che fare con la mia domanda. Non sono stato ben chiaro nell'elaborare su cosa esattamente voglio - per favore vedi la mia modifica. :) – Atrotygma

2

Intendi oltre al Visualizzatore di alberi WPF? c'è lo Mole, che non è più gratis, ma molto buono.

Modifica:

Leggere la domanda modificata. Stai nominando esplicitamente il PropertyGrid, suppongo che tu abbia già provato Extended WPF Toolkit's PropertyGrid?

+0

Sfortunatamente, non ha niente a che fare con la mia domanda. Non sono stato ben chiaro nell'elaborare su cosa esattamente voglio - per favore vedi la mia modifica. :) – Atrotygma

+0

Modificato la mia risposta, vedere se è quello che stai cercando. –

0

Quindi si desidera un controllo che visualizzi in fase di esecuzione i campi di una classe. Troverete molti articoli in merito cercando "Griglia di proprietà". Non è direttamente quello che vuoi ma è un inizio. In pratica, si esegue iterazione tramite la riflessione sui campi di una classe e visualizzati in un ListView/TreeView. Ma, e questa è stata la parte difficile inizia, determinare quali campi mostrare e quali nascondere, gestire con tipi e primitive molto diversi e permettere di modificarli con la conversione dei tipi (come la stringa a Rect, punto, colore ecc.) È molto materia complessa. This control potrebbe darti un buon punto di partenza.

0

Ho cercato la risposta a questo per mesi; Snoop, Spy e tutti gli altri non hanno funzionato per me, a causa delle violazioni della proprietà del thread.

Microsoft ha un finestre-strumento che consente di selezionare qualsiasi esecuzione UI Element e visualizzare i dati di accessibilità del Elemento:

inspect.exe 

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

E 'disponibile nei kit di sviluppo di Windows del software che devono essere scaricato e installato, e situato in:

C:\Program Files\x86\(win-version)\bin\(cpu-architecture)\inspect.exe 
Problemi correlati