2012-04-04 48 views
1

我有3列使用xaml中的綁定從數據庫中填充,然後我有一些列在ListView中是動態的。這是動態的列具有從代碼填寫,如後面的標題:來自代碼後面的複選框

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

我想在這個充滿活力列CheckBox,而不是內容被displaymemberbinding顯示。

回答

1

沒有測試過,但這樣的事情應該工作:

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 

或不想寫DataTemplate在XAML,並通過在代碼隱藏鍵來訪問它..

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

我想更好的方法是使用SetResourceReference代替TryFindResource;) – 2012-04-04 07:49:23

+0

非常感謝您的幫助,我真的很感謝。第二個選項運行良好。但另一個問題是我如何將內容添加到複選框中,如,並根據事件獲取每行的主題ID以點擊複選框的數量。非常感謝你 – rohit 2012-04-05 06:24:37

+0

我gt非常感謝你的回答。 – rohit 2012-04-05 08:14:25

相關問題