Xamarin.Forms: Use converters with binding objects which can have null as value.

This content has 3 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.You have a converter, which should return a specific value, even if the binded object is null. Converters does not get executed, when the binded value is null. But here is a solution, how to handle this situations. Define an example converter In this case we will use an Int value to bool value converter. This code returns true, if the binded value is greater than the value provided as a converter parameter. It can be used with the following code snippet in XAML: But what happends, when the ‘Object’ is null? Well the converter does not get executed. And since View’s default value of the IsVisible bindable property is true, then the label will be visible, even if the Object is null. How to handle null scenarios? Bindings have a property called FallbackValue. Give a value to the fallbackvalue property in order to override the default value, like this: This should return false even if the binded obejct is null. 🙂

Xamarin Forms: Ismerkedés a CustomUserControllokkal

This content has 5 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.Aki a Xamarin fejlesztĂ©sben kiprĂłbálta magát, az könnyen találkozhatott azzal a problĂ©mával hogy valamit nem tud megvalĂłsĂ­tani, mert nem ad rá a rendszer kĂ©sz usercontrolt. ProlĂłgus: Nem rĂ©g azzal a problĂ©mával szembesĂĽltem, hogy a Xamarin Formsban elĂ©rhetĹ‘ ListView-nak a ContextActions menĂĽjĂ©nek láthatĂłsága nem szabályozhatĂł. A ContextActions menu egy ListView elem hosszan nyomására jelenik meg. Ez tulajdonkĂ©ppen egy lista MenuItem objektumokbĂłl. Ennek segĂ­tsĂ©gĂ©vel indĂ­thatunk Commandokat a kiválasztott ListView elemĂ©t továbbadva. Azonban felmerĂĽlhet olyan igĂ©ny, hogy szabályozhatĂłvá tehessĂĽk a hosszan nyomásra elĹ‘tűnĹ‘ menĂĽnk láthatĂłságát. Erre sajnos nincs lehetĹ‘sĂ©gĂĽnk, csak kĂĽlönfĂ©le workaroundokkal. Rengeteg utánakeresĂ©s után arra jutottam, hogy a DataTemplate gyerekĂ©nek, a ViewCell-nek az IsEnabled tulajdonsága tulajdonkĂ©ppen letiltja a hosszan nyomást. Ez működött, adatköthettem a ViewModel-ben szereplĹ‘ UI mĂłd tulajdonságra, Ă­gy a ContextMenĂĽ már csak akkor jelent meg, ha a UI mĂłd szerkesztĂ©s mĂłdra volt állĂ­tva, megtekintĂ©s mĂłdon termĂ©szetesen nem voltak elĂ©rhetĹ‘ek a ContextMenĂĽben szereplĹ‘ adatmanipulálĂł gombok. És ekkor jött az igĂ©ny. MĂ©gpedig az, hogy szerkesztĂ©s mĂłdban jöjjenek elĹ‘ az adatmanipulálĂł gombok, emellett megtekintĂ©s mĂłdban az elemre kattintva hajtĂłdjon vĂ©gre egy másik parancs. Erre gondoltam azt, hogy a SelectedItem tulajdonságnak Setter ága tökĂ©letes lessz számomra. Mivel a ViewCell IsEnabledje megtekintĂ©s mĂłdban false volt, ezĂ©rt a SelectedItem sem állĂ­tĂłdott rajta. Az igĂ©ny viszont az, hogy megtekintĂ©s mĂłdban csak a ContextMenĂĽ ne legyen elĂ©rhetĹ‘, a lista elemre valĂł kattintás viszont igen. Csak idĹ‘közben felmerĂĽlt mĂ©g…

Xamarin Forms: XAML hibák feltárása

This content has 5 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.Aki ismerkedett a Xamarin Forms-szal, bizonyára Ă©szrevette, hogy a XAML fájl futásidĹ‘ben Ă©rtĂ©kelĹ‘dik ki. Ez fejlesztĂ©s közben hatalmas hátrányt jelent a fejlesztĹ‘ számára, hiszen egy hibásan megĂ­rt XAML fájl csak a debug folyamat közben bukik ki. A szintaktikailag hibás fájl Emiatt szĂĽksĂ©g volt egy megoldásra, annak Ă©rdekĂ©ben, hogy a fordĂ­tási idĹ‘ben kapjunk hibát a szintaktikailag nem helyes kĂłdrĂłl. A XAML Compilation azonnal köztes nyelvre fordĂ­tja a felĂĽletet leĂ­rĂł fájlokat. ErrĹ‘l a továbbiakban itt olvashatsz: https://developer.xamarin.com/guides/xamarin-forms/xaml/xamlc/ [assembly: XamlCompilation (XamlCompilationOptions.Compile)] Valami nem klappol! Az attribĂştum használata az app.xaml.cs-ben a namespace-en attribĂştumkĂ©nt:   (Archived post from: 2017.08.12)