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"/>

这个条目是错误的。没有想要的结果。请提供帮助/

XAML中的XElement对话

您可以使用转换器

    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;
    }
}