2012-04-04 3 views
1

Ich habe 3 Spalten, die mit Bindung in XAML aus der Datenbank gefüllt werden und dann habe ich einige Spalten, die in der ListView dynamisch sind. Die Säulen, die dynamisch sind, haben die von Code gefüllt Header hinter wie:Checkboxen von Code hinter

viewLayout.Columns.Add(
    new GridViewColumn {  
     Header = subjectvalues_forstdatt[i], 
     DisplayMemberBinding = new Binding(String.Format("[{0}]", i))  
    } 
); 

ich eine CheckBox in dieser dynamischen Spalte möchten, nicht der Inhalt von displaymemberbinding zeigte werden.

Antwort

1

Haben getestet es nicht, aber so etwas wie dies funktionieren sollte:

DataTemplate template = new DataTemplate { DataType = typeof(object) }; // <-- insert your concrete objet type here 

    FrameworkElementFactory stackPanelFactory = new FrameworkElementFactory(typeof(StackPanel)); 
    stackPanelFactory.SetValue(StackPanel.OrientationProperty, Orientation.Vertical); 

    FrameworkElementFactory checkbox = new FrameworkElementFactory(typeof(CheckBox)); 
    checkbox.SetBinding(CheckBox.IsCheckedProperty, new Binding(String.Format("[{0}]", subjectvalues_forstdatt[i])); 
    stackPanelFactory.AppendChild(checkbox); 


    viewLayout.Columns.Add(new GridViewColumn 
    { 

    Header = subjectvalues_forstdatt[i], 
    CellTemplate = template 

oder ich würde es vorziehen, die DataTemplate in XAML und greifen Sie über Key in Codebehind schreiben ..

CellTemplate = TryFindResource("myDataTemplateKey") as DataTemplate 
+0

Ich denke, der bessere Weg ist SetResourceReference anstelle von TryFindResource;) –

+0

vielen Dank für Ihre Hilfe, ich bin wirklich dankbar. Die zweite Option funktionierte gut. Das andere Problem ist, wie ich den Inhalt in das Kontrollkästchen wie und je nach Ereignis die Subjekt-ID pro Zeile für die Anzahl der angeklickten Checkboxen einfügt. Vielen Dank – rohit

+0

ich gt die Antwort dafür vielen Dank .. – rohit