我的问题是:
我需要将最后一个属性(此处, XElement("允许",""))绑定到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"/>
此条目错误。没有预期的结果。请帮忙/
答案 0 :(得分:1)
您可以使用转换器
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;
}
}