Come posso mostrare valori simili nei campi personalizzati in una griglia di proprietà?

StackOverflow https://stackoverflow.com/questions/612820

  •  03-07-2019
  •  | 
  •  

Domanda

Ho una griglia di proprietà che mi aiuta a gestire tutti i controlli in un modulo. Questi controlli sono per gente di tipo designer, quindi non sono molto preoccupato per l'interfaccia utente ... fino a quando qualcuno seleziona più oggetti.

Ho un UITypeEditor per " BottomDiameter " proprietà su questi oggetti comuni. Tiene traccia delle unità (metri contro piedi) e fa al volo alcune cose carine. Tuttavia, quando qualcuno seleziona due o tre oggetti comuni, BottomDiameter è vuoto, anche se restituisce la stessa stringa di testo.

Il motivo (penso) che sia vuoto è che in realtà sono tre oggetti objDiameter separati. Come posso dire alla griglia delle proprietà di comportarsi come tutte le altre proprietà e mostrare il valore se valuta la stessa stringa ???

AGGIORNAMENTO: ad esempio, "Ancoraggio" la proprietà ha un output di testo di " in alto, a destra " ma quando lo tiri giù è un oggetto. Tuttavia, quando selezioni cinque oggetti nel tuo modulo che hanno tutti la stessa impostazione di ancoraggio, puoi comunque vedere la stringa "In alto, A destra". nella griglia delle proprietà.

È stato utile?

Soluzione

Se BottomDiameter è una classe e non una semplice primitiva, devi sovrascrivere il metodo Equals in questa classe.

Altri suggerimenti

Nel TypeConvertor del tipo di dati che è attribuito alla proprietà BottomDiameter, potresti voler creare un vistor come la classe chiamata say, BottomDiameterVistor che richiederebbe un array o un elenco dei BottomDiameter selezionati. Sostituisci la proprietà to string su BottomDiameterVistor per restituire il valore di testo aggregato per la proprietà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top