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