我有一个包含多个子元素的 XML 文件。每个子元素都包含一系列元素,但 XML 模式没有记录,因此我无法解释所有可能的元素名称。我的目标是为每个子元素提供一个编辑器视图。例如:
XML 文件
<root>
<element>
<subelement1>value</subelement>
<randomName88787>value</randomName>
<somethingTotallyFunky>value</somethingTotallyFunky>
<iHaveNoIdeaWhatThisWillBe>value</iHaveNoIdeaWhatThisWillBe>
</element>
</root>
我希望使用 WPF Toolkit 的 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。有没有更好的方法来处理我正在尝试做的事情?一个更好的控制来做到这一点?