Autor Beitrag
Oppi35
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: Fr 01.07.11 22:44 
Hallo Zusammen,

mein Ziel heute war es, in meinem Datagrid eine Spalte mit Euro Werten anzuzeigen. Die Quelle ist eine Spalte in einer DataTable. Hier liegen die Werte im Format "Decimal" vor.

Nachdem ich für die folg. Zeile mehr als 2 Stunden Internetsuche benötigt habe, würde mich mal ineressieren, ob mir jemand einen Tip geben kann, wie man auf diese Syntax kommt.

ausblenden C#-Quelltext
1:
<DataGridTextColumn Binding="{Binding Path=WertA,StringFormat={}{0:c},ConverterCulture=de-DE}" Header="SpalteA">					



Letztendlich war der Knackpunkt, dass "StringFormat=" ein leeres geschweiftes Klammernpaar benötigt.
Dass dann nach Anzeige der Werte im Dollar-Währungsformat nur noch an der Culture geschraubt werden musste, war dann nur noch ein Klacks:)

Diese Art von Problemen habe ich häufiger in XAML. Daher meine Frage:
Woran hätte ich erkennen können, dass hier die zwei geschweiften Klammern benötigt werden? Verstanden habe ich es bis jetzt nicht:(

Gruß
Frank
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 01.07.11 23:00 
Geschweifte Klammerpaare in XAML bedeuten Markup Extensions, wie es Binding z.B. eine ist. Hast du stattdessen einen String-Parameter, in dem zufällig geschweifte Klammern vorkommen, musst du diese durch {} escapen. Mehr muss da eigentlich nicht beachtet werden ;) .

_________________
>λ=
IsNull
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: Sa 02.07.11 16:43 
Alternativ kannst du deinen String mit single Quotes (') umschliessen:
ausblenden XML-Daten
1:
Binding="{Binding Path=WertA, StringFormat='\{0:c\}',ConverterCulture=de-DE}"					

oder
ausblenden XML-Daten
1:
Binding="{Binding Path=WertA, StringFormat='ich bin text davor \{0:c\} ich bin text danach',ConverterCulture=de-DE}"					

Dann gelten die \ als normale Escapes in dem String und das ganze bekommt mehr ein Feeling von C# Strings.

Gruss