1
コード内のDataTemplateの内容を調べる方法はありますか?データ型のコントロールを特定の型を探してリストしたいと思います。コード内のデータ・テンプレート内で宣言されたコントロールを列挙しますか?
ありがとうございます!
コード内のDataTemplateの内容を調べる方法はありますか?データ型のコントロールを特定の型を探してリストしたいと思います。コード内のデータ・テンプレート内で宣言されたコントロールを列挙しますか?
ありがとうございます!
私の意見では、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
}