2010-12-26 17 views

Antwort

2

The TabItem ist ein Content-Kontrolle, so setzen Sie nur noch die Eigenschaft Content jede Art von Element sein, das Sie anzeigen möchten (zB ein Grid andere Elemente usw. enthält)

4

Verwenden Sie die Content Eigenschaft des neuen TabItem, dort kann man alles, wie Strings oder anderer WPF-Steuerelemente gesetzt:

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

Wenn jeder TabItem das gleiche Layout haben wird würde ich einfach ein UserControl schaffen, das, was Sie von einem Layout und Steuer Haltung benötigen umfasst und dann Platz das innerhalb der TabItem.Content Eigenschaft.

Sie könnten dann die Daten über die Objektdarstellung an die TabItem.DataContext-Eigenschaft übergeben, um die Bindung zu initiieren und zu verwenden.

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

Danke, ich fange jetzt an, einige Fortschritte zu machen. Wenn meine Benutzersteuerung also mehrere Steuerelemente enthält, sagst du, dass ich die Daten "auf einmal" an das TabItem übergeben kann, indem ich die Daten in ein Objekt packe? Vermutlich könnte die Use-Control dann eine Methode enthalten, um genau das zu tun, was ich nennen könnte? –

+0

@Paul In so vielen Worten ja. In Ihrem UserControl können Sie dann DataBinding verwenden, da, wenn Sie den DataContext des TabItems festlegen, es kaskadieren wird. Dann können Ihre Steuerelemente im UserControl an die Daten im DataContext gebunden werden. –

+0

Vielen Dank Aaron für all Ihre Hilfe, nur noch eine Frage, jedes Tabitem ist identisch, aber ich bin nicht sicher, die beste Kontrolle (n) zu verwenden. Auf jeder Registerkarte muss ich "Zeilen" anzeigen, die jede aus einer Datenbank gelesene Zeile darstellen. Jede Datenzeile besteht aus 3 Textfeldern, einem booleschen Wert und einer Ganzzahl im Bereich 1-4, die eines von 4 möglichen Bildern darstellt. Ich muss den Text, den booleschen Wert (in einem Kontrollkästchen) und das entsprechende Bild mit einem geeigneten Steuerelement anzeigen, mit dem ich es ändern kann. Könnte ich das irgendwie mit einem Datagrid machen? –

Verwandte Themen