XAML中的XElement对话
本文关键字:对话 XElement 中的 XAML | 更新日期: 2023-09-27 18:28:28
我的问题是:
我需要将最后一个属性(此处为XElement("permit","))绑定到DataGrid。
policy_zone then1 = new policy_zone("TRUST", "UNTRUST", new policy("100", new Match_Policy("any", "any", "any"), new XElement("permit", "")));
直到它有这样的形式(为了使用XmlSerialization形成Xml,我需要这个形式):
<permit></permit>
fr-zone |to-zone| Name |Src-addr|dst-addr| Appl | Action
-------------------------------------------------------------------
TRUST |UNTRUS | 100 | any | any | any | <permit></permit>
DMZ |Limpopo| 200 | any | any | any | <deny></deny>
但现在我需要将其转换为这样的形式(并在XAML中执行此操作):
permit
我理解如何单独完成:
string xmlSTR = "<permit></permit>";
txt.Text = XElement.Parse(xmlSTR).Name.ToString();
输出:
permit
但我不明白,我怎么能把它应用到我的XAML中。这里,
<DataGridTextColumn x:Name="action" Binding="{Binding policy.new XElement.Parse(then).Name.ToString()}" Header="Action" Width="80"/>
这个条目是错误的。没有想要的结果。请提供帮助/
您可以使用转换器
Binding = "{Binding xmlStr, Converter={StaticResource ParseConverter}}"
转换器是
public class ParseConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!string.IsNullOrEmpty((string)value))
{
return XElement.Parse((string)value).Name.ToString();
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}