2010-12-26 17 views

risposta

2

Il TabItem è un controllo dei contenuti, quindi basta impostare la proprietà Content per essere qualsiasi tipo di elemento che si desidera visualizzare (ad esempio, una griglia contenente altri elementi, ecc)

4

Usare il Content proprietà della nuova TabItem, ci si può impostare qualsiasi cosa, come stringhe o altri controlli WPF:

private void AddChildControl(TabItem tabItem) 
{ 
    StackPanel newChild = new StackPanel(); 
    tabItem.Content = newChild; 
} 
10

Se ognuno TabItem sta per avere lo stesso layout vorrei semplicemente creare un UserControl che comprende ciò che è necessario da un layout e di controllo posizione e poi posto quello all'interno della proprietà TabItem.Content.

È quindi possibile passare i dati tramite la rappresentazione oggetto alla proprietà TabItem.DataContext di avviare e fare uso di vincolante.

TabItem item = new TabItem(); 
item.Content = new CustomUserControl(); 
item.DataContext = data; //where data is the data that 
         //comes from the database 
         //being represented in object form 
+0

Grazie, sto iniziando a fare progressi. Quindi se il mio usercontrol contiene diversi controlli, stai dicendo che posso passare i dati "tutto in una volta" al TabItem impacchettando i dati in un oggetto? Presumibilmente quindi l'usecontrol potrebbe contenere un metodo per fare proprio quello che potrei chiamare? –

+0

@Paul In così tante parole sì. Nel tuo UserControl puoi quindi utilizzare DataBinding, dal momento che quando imposti il ​​DataContext del TabItem si sovrapporrà. Quindi in UserControl i tuoi controlli possono essere associati ai dati all'interno di DataContext. –

+0

Mille grazie Aaron per tutto il tuo aiuto, solo una domanda in più, ogni tabitem è identico ma non sono sicuro che il miglior controllo (i) da usare. Su ogni scheda ho bisogno di visualizzare 'righe' che rappresentano ogni riga letta da un database. Ogni riga di dati è composta da 3 campi di testo, un valore booleano e un numero intero compreso tra 1 e 4 che rappresenta una delle 4 possibili immagini. Ho bisogno di visualizzare il testo, il valore booleano, (in una casella di controllo) e l'immagine corrispondente con un controllo appropriato con cui cambiarlo. Potrei farlo in qualche modo con un datagrid? –

Problemi correlati