2009-06-10 4 views
1

Les éléments et FirstAttribute se lient comme je le pensais (si je ne savais pas que c'est une méthode), mais les attributs ne le sont pas, bien qu'ils soient membres de XElement, tout comme les autres. Je sais à propos de IValueConverter, et j'utilise cela pour obtenir la liaison que je veux sur les attributs, mais je suis curieux de savoir pourquoi cela fonctionne sur les éléments.Pourquoi l'un des chemins ne se lie-il pas dans ce scénario?

<Window x:Class="WpfApplication6.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <StackPanel> 
    <TextBlock Text="{Binding Path=FirstAttribute}" /> 
    <ListBox ItemsSource="{Binding Path=Elements}" /> 
    <ListBox ItemsSource="{Binding Path=Attributes}" /> 
    </StackPanel> 
</Window> 


using System.Linq; 
using System.Windows; 
using System.Xml.Linq; 

namespace WpfApplication6 { 
    /// <summary> 
    /// Interaction logic for Window1.xaml 
    /// </summary> 
    public partial class Window1 : Window { 
     public Window1() { 
      InitializeComponent(); 

      XDocument doc = new XDocument(
       new XElement("Parent", 
        new XAttribute("attr1", "val"), 
        new XAttribute("attr2", "val"), 
        new XElement("Child1"), 
        new XElement("Child2") 
        ) 
       ); 

      MessageBox.Show("Elements: " + doc.Elements().First().Elements().Count()); 
      MessageBox.Show("Attributes: " + doc.Elements().First().Attributes().Count()); 

      DataContext = doc.Elements().First(); 
     } 
    } 
} 

Répondre

0

Êtes-vous sûr que les éléments fonctionnent? Parce que pour autant que je sache, vous ne pouvez pas vous lier directement à une méthode. Les éléments et les attributs sont les deux méthodes, pour contourner cela, voir this question.

+0

C'est ce que je pensais aussi , mais la liaison directe aux éléments fonctionne en effet. J'ai utilisé un IValueConverter pour les attributs. – lesscode

Questions connexes