2017-01-10 5 views
0

を働いていないクローニング私は同じ性質を持つ2つのデータグリッドを作成する必要があります。どのように同じプロパティを持つ2つのオブジェクトを作成するために -

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

と同じ性質を持つDTG2を... が、データグリッド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); 

ので、どのように正確に同じ特性を有する2つのオブジェクトを作成することができますか?

+0

上記のように、シリアライザを使用して深いクローンを実現することができます。それは動作しませんか?もしそうなら、どんなエラーが出るのですか?予期しない結果はありますか?あなたが何を試したのか、どこにこだわっているのか、より具体的にしてください。 – HimBromBeere

+0

エラーなし。クローンを作成せず、グラフィック効果がぼんやりです – Luca

+1

XAMLスタイルを使用して、共通のスタイルを異なるDataGrid(または他のコントロール)に適用する方がよいでしょう。 – mechanic

答えて

1

dtgXamlにセリアライズされているようですが、決して使用されません。 代わりに、gridXamlという変数を使用します。

+0

そんなに私の愚かなことはありません – Luca

関連する問題