2011-07-16 8 views
6

Właśnie uczę się WPF, a ja zagęściłem tabelę ze źródła danych do okna, które wygenerowało XAML dla każdej kolumny.Jak mogę uciec znak slash w ścieżce wiążącej WPF, lub jak obejść?

Niektóre z tych kolumn miały nazw, które spowodowały następujące:

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

Powoduje kolumnę wymyślić puste (jak ja).

+0

Czy obejrzałeś {} http://msdn.microsoft.com/en-us/library/ms744986.aspx – cordialgerm

Odpowiedz

4

Na MSDN istnieje article on property paths który ma przekrój w postaci ucieczki:

Inside indeksujących ([]), postać daszka (^) ucieka następny znak.

Musisz uciec (używając encji XML) określonych znaków, które są specyficzne dla definicji języka XML. Użyj &, aby uniknąć znaku "&". Użyj >, aby opuścić tag końcowy ">".

Należy użyć znaków ułamkowych(), które są charakterystyczne dla zachowania parsera WPF XAML w celu przetworzenia rozszerzenia znaczników.

  • Ukośnik odwrotny (\) jest samą postacią ucieczki.
  • Znak równości (=) oddziela nazwę właściwości od wartości właściwości.
  • Przecinek (,) rozdziela właściwości.
  • Prawy nawias klamrowy (}) jest końcem rozszerzenia oznaczenia.

Ukośnik nie ma na liście, więc nie wiem, czy ucieczki backslash będzie działać, ale można spróbować.

(jaki dokładnie masz nazwy właściwości takiego Wydaje się być nielegalne zarówno w formacie XML i C#?)

+0

pochodzi od nazwy kolumny w widoku serwera sql –

3

I (niby przypadkowo) próbował:

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

a Rezultat był taki, że wszystko działało zgodnie z oczekiwaniami. Patrząc na to jeszcze raz, wydaje mi się, że cytat MSDN H.B. mówi mi o tym. Kiedy to przeczytałem (pierwotnie na MSDN, zanim jeszcze opublikowałem to pytanie, to znowu tutaj) po prostu nie rozumiem, co "Wewnętrzne indekatory - comma- - znak karetki (^) wymyka się spod znaku" ".

Powiązane problemy