我正在尝试使用 Linq to XML 在某些 XAML 中设置 x:Key,以便我可以将值转换器添加到数据模板的资源字典中:
XNamespace xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
XNamespace local = "clr-namespace:App,assembly=App";
XElement dt = new XElement(xmlns + "DataTemplate",
new XAttribute(XNamespace.Xmlns + "x", "http://schemas.microsoft.com/winfx/2006/xaml"),
new XAttribute(XNamespace.Xmlns + "local", "clr-namespace:App,assembly=App"),
new XElement(xmlns + "DataTemplate.Resources",
new XElement(local + "MyConverter",
new XAttribute("x:Key", "myConverter"))));
但是,这会引发一个异常,抱怨属性名称中不允许使用“:”。使用另一个XNamespace x = "http://schemas.microsoft.com/winfx/2006/xaml"
和写作x + "Key"
也不起作用 - 它给出了p3:Key
.
有什么方法可以在XAttribute
名称中包含冒号吗?