Tip: Složené závorky v XAML Binding ConverterParameter

WinUI XAML WPF

7 years ago

Při práci na jedné z UWP aplikací jsem chtěl vytvořit value converter založený na metodě string.Format , abych mohl s pomocí ConverterParameter upravit nabindovanou hodnotu a výsledek použít jako klíč pro lokalizaci. Když jsem se poté pokusil projekt sestavit, čekala mě následující nepříliš čitelná chyba:

Child node "2" exited prematurely. Shutting down.
Diagnostic information may be found in files in the
temporary files directory named MSBuild_*.failure.txt.

Přestože chybová hláška ani výseldný chybový soubor nebyly moc nápomocné, naštěstí byly změny v XAMLu posledními, které jsem prováděl a chybu jsem tedy přirozeně hledal tam.

{Binding 
   Converter={StaticResource TypeNameLocalizingConverter}, 
   ConverterParameter={0}_Description}

Jak můžete očkávat, není možné přímo v XAML binding expression používat složené závorky. Řešení je snadné - použít zpětné lomítko pro escaping.

{Binding 
   Converter={StaticResource TypeNameLocalizingConverter}, 
   ConverterParameter=\{0\}_Description}

V této podobě je již možné kód snadno zkompilovat a vše, včetně value converteru, je plně funkční.