2017-01-10 77 views
0

我要創建兩個數據網格具有相同屬性:如何創建兩個對象具有相同屬性 - 克隆不工作

var dtg = new DataGrid 
{ 
    Margin = new Thickness(10), 
    EnableColumnVirtualization = false, 
    EnableRowVirtualization = false, 
    Background = Brushes.Transparent, 
    Foreground = new SolidColorBrush(m_ExeCfg.GetForeground()), 
}; 

,然後dtg2具有相同屬性... 但Datagrid的DTG = dtg2 = {...}是不允許

因此我已經使用這個克隆:

string dtgXaml = System.Windows.Markup.XamlWriter.Save(dtg); 
StringReader stringReader = new StringReader(gridXaml); 
System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(stringReader); 
DataGrid dtg2 = (DataGrid)System.Windows.Markup.XamlReader.Load(xmlReader); 

所以我怎樣才能創建具有完全相同的特性的兩個對象嗎?

+0

使用上面顯示的序列化程序可以實現深度克隆。它不工作?如果是的話,你會得到什麼錯誤?任何意外的結果?請更具體地說明你曾經嘗試過什麼,以及你卡在哪裏。 – HimBromBeere

+0

好的沒有錯誤。只是不克隆,圖形效果明顯 – Luca

+1

您最好使用XAML樣式將常用樣式應用於不同的DataGrid(或任何其他控件)。 – mechanic

回答

1

看起來像你正在序列化到dtgXaml,但這是從來沒有使用。 而是使用一些gridXaml變量。

string dtgXaml = System.Windows.Markup.XamlWriter.Save(dtg); 
StringReader stringReader = new StringReader(gridXaml); 
+0

對我來說很愚蠢 – Luca

相關問題