複数の子要素を含む XML ファイルがあります。各子要素には一連の要素が含まれていますが、XML スキーマは文書化されていないため、考えられるすべての要素名を説明することはできません。私の目標は、子要素ごとにエディター ビューを提供することです。例えば:
XML ファイル
<root>
<element>
<subelement1>value</subelement>
<randomName88787>value</randomName>
<somethingTotallyFunky>value</somethingTotallyFunky>
<iHaveNoIdeaWhatThisWillBe>value</iHaveNoIdeaWhatThisWillBe>
</element>
</root>
WPF ツールキットの PropertyGrid コントロール (または同様のもの) を使用して、のすべての子要素のリストを表示したいと考えて<element>
いましたが、このコントロールは CLR オブジェクトにバインドされるように設計されています。もちろん、プロパティがどうなるかわからないので、プロパティを持つクラスを定義することはできません。expando オブジェクトにバインドするために次のコードを試しました。
var expando = new ExpandoObject();
var dict = (IDictionary<string, object>)expando;
foreach (var prop in unit.Elements())
{
if (dict.ContainsKey(prop.Name.LocalName) == false)
{
dict.Add(prop.Name.LocalName, (string)prop.Value);
}
}
Properties.SelectedObject = expando;
しかし、プロパティは表示されません。ExpandoObject をうまく処理していないようです。私がやろうとしていることにアプローチするより良い方法はありますか? それを行うためのより良いコントロールはありますか?