2009-07-13 9 views

答えて

0

私の意見では、XamlWriter/XamlReaderとLINQ to XMLを併用することをお勧めします。たとえば :

string templateXaml = XamlWriter.Save(template); 

XElement xData = XElement.Parse(templateXaml); 

XElement xpanel = xData.XPathSelectElements("//*[@IsItemsHost]").FirstOrDefault(); 

これは、既存のIsItemsHost属性を持つXAML要素を見つけるだろう。その後

、あなたはこのようにそれを変換し、プログラム的依存関係オブジェクトとしてそれを検討したい場合:

Panel panel = (Panel) XamlReader.Parse(xpanel.ToString()); 

//example, discover which panel Type it actually is 
Type panelType = panel.GetType(); 

EDITまた

、さらにあなたのようなコードを記述し、直接あなたの質問に答えるためにこれは:

IEnumerable<XElement> typedElements = xData.XPathSelectElements("//SpecificType"); 

foreach(XElement el in typedElements) 
{ 
    DependencyObject dObj = (DependencyObject) XamlReader.Parse(el.ToString()); 

    //do something with dObj 
} 
関連する問題