Merhabalar, Listview custom template kullandığım sırada karşıma çıkan bir hata Xamarin.Forms Binding Specified Cast is Not Valid Hatası. Bu yazıda bu hatanın sebebini ve çözümünü paylaşacağım.
Xamarin.Forms Binding Specified Cast is Not Valid Hatasının en kötü özelliği derleyicinin size direk olarak burada hata var dememesi. Başlangıçta kodlarınızı kurcalamanız, hata aramanı ve bulamamanız olası.
Aşağıda bir Listview xaml şablonu görebilirsiniz. Bu şablonda DataTemplate içerisine StackLayout -> Grid eklediğinizde genellikle bu hatayı alırsınız. Ben direk olarak Grid eklediğimde de aynı hatayı aldım.
<ListView ItemsSource="{Binding ListviewItems}"> <ListView.ItemTemplate> <DataTemplate> </DataTemplate> </ListView.ItemTemplate> </ListView>
Çözüm ise aslında oldukça basit. Öncelikle DataTemplate içerisine bir ViewCell ekleyin. Daha sonra ViewCell içerisine Grid ekleyerek kullanabilirsiniz.
<ListView ItemsSource="{Binding ListviewItems}"> <ListView.ItemTemplate> <DataTemplate> <Viewcell> <Grid> // Şablonunuzu bu alana istediğiniz gibi oluşturabilirsiniz. </Grid> </Viewcell> </DataTemplate> </ListView.ItemTemplate> </ListView>
Mustafa Bey,
çok teşekkür ederim. Hatayı bulabilmek için bayağı uğraşmıştım.