2012-01-25 18 views
9

mam ten XAMLStrange MultiBinding StringFormat problem

<MultiBinding StringFormat=" {0}{1}/{2}"> 
    <Binding Path="Text" ElementName="tbxAuthHost" /> 
    <Binding Path="Text" ElementName="tbxAuthWebsiteName" /> 
    <Binding Path="Text" ElementName="tbxAuthServicesAddress" /> 
</MultiBinding> 

Przy próbie zmiany "{0} {1}/{2}" na "{0} {1}/{2}", więc bez początkowych tam i wtedy Visual Studio podaje ten błąd:

Błąd 3 Tekst "{1}/{2}" nie jest dozwolony po zamknięciu "}" wyrażenia MarkupExtension. Linia 116 Pozycja 56.

Jak mogę rozwiązać ten problem?

enter image description here

+0

Sprawdź, czy masz ** spację ** po '{0}'? – V4Vendetta

+0

Cześć! Nie mam tego 100% –

Odpowiedz

15

Można rozwiązać ten problem poprzez umieszczenie {} z przodu formatu strun.

StringFormat="{}{0}{1}/{2}" 

Wyjątkowo źle wyjaśnia się formatowanie.

Jeśli spojrzysz na stronę na stronie escape sequence, wyjaśnia ona, że ​​otwarcie nawiasu klamrowego na początku oznacza rozszerzenie znacznika (np. Powiązanie), a {0}{1}/{2} nie jest poprawnym rozszerzeniem znacznika. Nie wyjaśnia to, że nie działa też jako pierwsza postać.

+0

Perfect !!! To działa! Skąd to wiedziałeś? –

+0

Próbuję znaleźć moje odniesienie, ale pamiętam gdzieś je czytałem. – Ray

+1

@DmitryBoyko znalazł źródło, zaktualizowaną odpowiedź. – Ray