Procedura: Valori delle proprietà di aggiornamento nella Finestra Proprietà
Esistono due modi per mantenere la finestra di Proprietà sincronizzato con valore viene modificato. Il primo consiste nel chiamare l'interfaccia di IVsUIShell , che fornisce l'accesso alle funzionalità di base di utilizzo di windows, incluso l'accesso e la creazione di strumenti e le finestre di documento forniti dall'ambiente. Nei passaggi seguenti viene descritto il processo di sincronizzazione.
Aggiornare i valori della proprietà utilizzando la IVsUIShell
Per aggiornare i valori delle proprietà utilizzando l'interfaccia di IVsUIShell
Chiamare IVsUIShell (tramite il servizio di SVsUIShell ) in qualsiasi momento il package VS, o necessità degli editor di creare o enumerare lo strumento o le finestre del documento.
Utilizzo RefreshPropertyBrowser per mantenere la finestra di Proprietà sincronizzato con le modifiche delle proprietà per un progetto (o qualsiasi altro oggetto selezionato che viene esplorato dalla finestra di Proprietà ) senza implementare IConnectionPointContainer e generare gli eventi di OnChanged .
Implement the IVsHierarchy methods AdviseHierarchyEvents and UnadviseHierarchyEvents to establish and disable, respectively, client notification of hierarchy events without requiring the hierarchy to implement IConnectionPointContainer.
Aggiornare i valori della proprietà utilizzando la IConnection
La seconda modalità per mantenere la finestra di Proprietà sincronizzato con le modifiche dei valori di proprietà sia di implementare IConnection sull'oggetto collegabile per indicare l'esistenza delle interfacce in uscita. Se si desidera localizzare il nome, derivare l'oggetto da ICustomTypeDescriptor. L'implementazione di ICustomTypeDescriptor possibile modificare i descrittori di proprietà che restituisce e modifica il nome di una proprietà. Per localizzare la descrizione, creare un attributo che deriva da DescriptionAttribute ed eseguire l'override della proprietà description.
Considerazioni quando si implementa l'interfaccia di IConnection
IConnection fornisce l'accesso a un sotto-oggetto dell'enumeratore con l'interfaccia di IEnumConnectionPoints . Fornisce inoltre l'accesso a tutti gli oggetti subordinati del punto di connessione, ognuno dei quali implementa l'interfaccia di IConnectionPoint .
Qualsiasi oggetto explorer è responsabile dell'implementazione di un evento di IPropertyNotifySink . La finestra di Proprietà consiglierà per l'evento impostato con IConnection.
Un punto di connessione controlla il numero di connessioni (uno o più) consente nell'implementazione di Advise. Un punto di connessione che consente una sola interfaccia può restituire E_NOTIMPL dal metodo di EnumConnections .
Un client può chiamare l'interfaccia di IConnection per ottenere l'accesso a un sotto-oggetto dell'enumeratore con l'interfaccia di IEnumConnectionPoints . L'interfaccia di IEnumConnectionPoints può quindi essere chiamata per enumerare i punti di connessione per ogni ID dell'interfaccia in uscita (IID).
IConnection può essere chiamato per ottenere l'accesso a oggetti subordinati del punto di connessione con l'interfaccia di IConnectionPoint per ogni IID in uscita. Tramite l'interfaccia di IConnectionPoint , un client iniziare o terminare un ciclo consultivo all'oggetto collegabile e propri client sincronizzazione. Il client può chiamare anche l'interfaccia di IConnectionPoint per ottenere un oggetto enumerator con l'interfaccia di IEnumConnections per enumerare le connessioni di cui è a conoscenza.
Vedere anche
Attività
Procedura: Annunciare la selezione che tiene traccia di all'ambiente