2014-10-31 54 views
0
谈话

我的问题,例如:的XElement在XAML

我需要最后一个属性绑定(在这里,的XElement( “许可证”, “”))到数据网格。

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

此条目是否有误?没有期望的结果。请帮助/

回答

1

您可以使用一个转换器

Binding = "{Binding xmlStr, Converter={StaticResource ParseConverter}}" 

Converter是,

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; 

    } 
} 
+0

谢谢!真正!优秀的方法。遗憾的是,没有足够的权限来回答更多细节/ – 2014-10-31 08:56:50