2017-01-10 2 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