2015-12-03 46 views
-1

爲什麼它不起作用?錯誤:元素不能是其父項

dataGrid.Columns.Add(new DataGridTextColumn() 
{ 
    Header = new DataGridColumnHeader 
    { 
     Name = eName, 
     Background = Brushes.AliceBlue 
    } 
}); 

錯誤是:

A first chance exception of type 'System.InvalidOperationException' occurred in PresentationFramework.dll

Additional information: Element cannot be its own parent.

+1

你能表現出一些其他的代碼 - 如何你聲明,創建和使用'dataGrid'? –

回答

1

可惜的是標頭不是控制。這是一個內容。 您可以用HeaderStyle

Style headerStyle = new Style(typeof(DataGridColumnHeader)); 
headerStyle.Setters.Add(
    new Setter(DataGridColumnHeader.BackgroundProperty, Brushes.AliceBlue)); 

lb.Columns.Add(new DataGridTextColumn() 
{ 
    Header = eName, 
    HeaderStyle = headerStyle 
}); 
0

達到你的目標雖然標題應該是你不能添加其他的DataGridColumn類型的對象類型。這就是發生異常的原因。你基本上是嵌套你的專欄,這是非法的。它的內容最好是另一種控制。

例如,這將工作根據您的代碼:

dataGrid.Columns.Add(new DataGridTextColumn() 
{ 
    Header = new Button() 
    { 
     Content = "string", 
     Background = Brushes.AliceBlue 
    } 
}); 

沒有底色或任何其他UI的細節,實際上你可以這樣做:

dataGrid.Columns.Add(new DataGridTextColumn() 
{ 
    Header = "header string" 
}); 
相關問題