Griglia di visualizzazione delle proprietà
Nella finestra Proprietà vengono visualizzati i campi all'interno di una griglia. La colonna sinistra contiene i nomi delle proprietà; la colonna destra contiene i valori delle proprietà.
Usare la griglia
L'elenco a due colonne mostra le proprietà indipendenti dalla configurazione che possono essere modificate in fase di progettazione e le relative impostazioni correnti. Si noti che tutte le proprietà potrebbero non essere visualizzate. Una proprietà può essere impostata come nascosta, ad esempio implementando il HideProperty metodo . In particolare, per nascondere le proprietà con proprietà figlio:
Impostare il
pfDisplay
parametro in DisplayChildProperties suFALSE
.Impostare il
pfHide
parametro in HideProperty suTRUE
.
Per eseguire il push delle informazioni nella finestra Proprietà , l'IDE usa ISelectionContainer. ISelectionContainer viene chiamato da VSPackages per ogni finestra che contiene oggetti selezionabili con proprietà correlate da visualizzare nella finestra Proprietà . Esplora soluzioni'implementazione delle ISelectionContainer chiamate GetProperty
tramite __VSHPROPID. VSHPROPID_BrowseObject nella gerarchia del progetto per acquisire gli oggetti sfogliabili nella gerarchia.
Se il pacchetto VSPackage non supporta __VSHPROPID. VSHPROPID_BrowseObject, l'IDE tenta di usare GetProperty il valore per __VSHPROPID. VSHPROPID_SelContainer che l'elemento o gli elementi della gerarchia forniscono.
Il pacchetto VSPackage del progetto non deve creare ISelectionContainer perché il pacchetto della finestra fornito dall'IDE che lo implementa (ad esempio, Esplora soluzioni) costruisce ISelectionContainer per suo conto.
ISelectionContainer è costituito da tre metodi chiamati dall'IDE:
CountObjects contiene il numero di oggetti selezionati da visualizzare nella finestra Proprietà .
GetObjects restituisce gli
IDispatch
oggetti selezionati da visualizzare nella finestra Proprietà .SelectObjects rende possibile che uno qualsiasi degli oggetti restituiti dall'utente GetObjects sia selezionato dall'utente. Ciò consente al VSPackage di aggiornare visivamente la selezione visualizzata all'utente nell'interfaccia utente.
La finestra Proprietà estrae informazioni dagli IDispatch
oggetti per recuperare le proprietà da esplorare. Il browser Proprietà usa IDispatch
per chiedere all'oggetto quali proprietà supporta eseguendo query su ITypeInfo
, ottenuto da IDispatch::GetTypeInfo
. Il browser usa quindi questi valori per popolare la finestra Proprietà e modificare i valori per le singole proprietà visualizzate nella griglia. Le informazioni sulle proprietà vengono mantenute all'interno dell'oggetto stesso.
Poiché gli oggetti restituiti supportano IDispatch
, il chiamante può ottenere informazioni quali il nome dell'oggetto chiamando IDispatch::Invoke
o ITypeInfo::Invoke
con un identificatore di invio predefinito (DISPID) che rappresenta le informazioni desiderate. I DISPID dichiarati sono negativi per assicurarsi che non siano in conflitto con gli identificatori definiti dall'utente.
Nella finestra Proprietà vengono visualizzati diversi tipi di campi a seconda degli attributi di proprietà specifiche di un oggetto selezionato. Questi campi includono caselle di modifica, elenchi a discesa e collegamenti alle finestre di dialogo dell'editor personalizzato.
I valori contenuti in un elenco enumerato vengono recuperati da una GetObjects query a
IDispatch
. I valori ottenuti da un elenco enumerato possono essere modificati nella griglia delle proprietà facendo doppio clic sul nome del campo oppure facendo clic sul valore e selezionando il nuovo valore dall'elenco a discesa. Per le proprietà con impostazioni predefinite da elenchi enumerati, fare doppio clic sul nome della proprietà nell'elenco Proprietà scorre le scelte disponibili. Per le proprietà predefinite con solo due opzioni, ad esempio true/false, fare doppio clic sul nome della proprietà per passare da una scelta all'altra.Se HasDefaultValue è
false
, che indica che il valore è stato modificato, il valore viene visualizzato in grassetto. CanResetPropertyValue viene usato per determinare se il valore può essere reimpostato sul valore originale. In tal caso, è possibile tornare all'impostazione predefinita facendo clic con il pulsante destro del mouse sul valore e scegliendo Reimposta dal menu visualizzato. In caso contrario, è necessario ripristinare manualmente il valore predefinito. IVsPerPropertyBrowsing consente inoltre di localizzare e nascondere i nomi delle proprietà visualizzate durante la fase di progettazione, ma non influisce sui nomi delle proprietà visualizzati durante l'esecuzione.Facendo clic sul pulsante con i puntini di sospensione (...) viene visualizzato un elenco di valori di proprietà da cui l'utente può selezionare (ad esempio una selezione colori o un elenco di tipi di carattere). IProvidePropertyBuilder fornisce questi valori.