2013-01-31 54 views
1

在我的WPF應用程序中,我從後面的代碼動態創建Datagrid。但是,我想有一個數據網格與行標題上的複選框類似this如何在代碼後面的DataGrid行標題上分配複選框?

我知道如何從XML做到這一點,但不是從cs代碼。有什麼想法如何處理這種情況? ps。我的代碼非常大,我不能把它放在這裏,但如果你需要更多信息,請在下面寫下評論。乾杯

回答

2

怎麼是這樣的:

var dg = new DataGrid(); 

var dataTemplate = new DataTemplate(); 

var gridFactory = new FrameworkElementFactory(typeof(Grid)); 
var checkboxFactory = new FrameworkElementFactory(typeof(CheckBox)); 
checkboxFactory.SetBinding(CheckBox.IsCheckedProperty, new Binding("IsSelected") { RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor,typeof(DataGridRow),1)}); 
gridFactory.AppendChild(checkboxFactory); 

dataTemplate.VisualTree = gridFactory; 
dg.RowHeaderTemplate = dataTemplate; 

希望這應該是能夠把你的代碼,沒有太多的精力,大概只需要將DataGrid名字從「DG」改變。

+0

謝謝!這個對我有用。我使用XamlReader類執行此操作,因爲FrameworkElementFactory類現在已被棄用。 – deltonio2

相關問題