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

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í.

Buy me a coffeeBuy me a coffee

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.