2014-10-31 55 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