2011-07-16 9 views
6

Sto solo imparando WPF e ho sottoposto a test una tabella da un'origine dati su una finestra che generava XAML per ogni colonna.come faccio a sfuggire a un carattere barra in un percorso di binding WPF o come risolvere il problema?

Alcune di queste colonne avevano nomi che hanno causato il seguente:

<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=Rev/Unit}" Header="Rev/Unit" Width="SizeToHeader" /> 

Questo fa sì che la colonna a venire vuoto (come me).

+0

Hai guardato {} http://msdn.microsoft.com/en-us/library/ms744986.aspx – cordialgerm

risposta

4

In MSDN v'è un article on property paths che ha una sezione sui caratteri di escape:

indicizzatori interne ([]), il carattere di inserimento (^) sfugge il carattere successivo.

È necessario eseguire l'escape (utilizzando le entità XML) di determinati caratteri speciali per la definizione del linguaggio XML. Utilizzare & per uscire dal carattere "&". Utilizzare > per uscire dal tag di chiusura ">".

È necessario eseguire l'escape (utilizzando i caratteri backslash \) che sono speciali per il comportamento del parser XAML di WPF per l'elaborazione di un'estensione di markup.

  • La barra rovesciata (\) è il carattere di escape stesso.
  • Il segno di uguale (=) separa il nome della proprietà dal valore della proprietà.
  • Virgola (,) separa le proprietà.
  • La parentesi graffa destra (}) è la fine di un'estensione di markup.

La barra non è elencato qui in modo che io non so se la fuga backslash avrebbe funzionato, ma si può provare.

(esattamente come si ha un nome di proprietà del genere Sembra di essere illegale sia in XML e C#?)

+0

deriva dal nome di un nome di colonna in una vista sql server –

3

I (tipo di casuale) provato:

<DataGridTextColumn x:Name="_Rev_UnitColumn" Binding="{Binding Path=[Rev/Unit]}" Header="Rev/Unit" Width="SizeToHeader" /> 

E il il risultato è stato che tutto ha funzionato come mi aspettavo. Guardandolo di nuovo, suppongo che la citazione MSDN di H.B. me lo dica. Quando ho letto che (originariamente su MSDN, prima ho persino postato questa domanda, poi di nuovo qui), non ho capito cosa "All'interno degli indicizzatori --comma-- il carattere di accento (^) sfugge al carattere successivo" ".

Problemi correlati