Ok, quindi ho il seguente vista:Cast specificato non è valido quando vincolante alla lista dei di POCO
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="BoomSauce.MainPage">
<ListView ItemsSource="{Binding Model.MyPocos}">
<ListView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding MyString}"></Label>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
Il BindingContext di questa visione è la seguente ViewModel:
public class MainViewModel
{
public MainModel Model { get; set; }
}
Ecco MainModel:
public class MainModel
{
public List<MyPoco> MyPocos { get; set; }
}
Ecco MyPoco:
public class MyPoco
{
public string MyString { get; set; }
public int MyInt { get; set; }
}
Ecco quello che sta succedendo in App()
MainPage = new MainPage();
var viewModel = new MainViewModel
{
Model = new MainModel
{
MyPocos = new List<MyPoco>()
{
new MyPoco() { MyInt = 1, MyString = "a" },
new MyPoco() { MyInt = 2, MyString = "b" },
new MyPoco() { MyInt = 3, MyString = "c" },
new MyPoco() { MyInt = 4, MyString = "d" },
new MyPoco() { MyInt = 5, MyString = "e" }
}
}
};
MainPage.BindingContext = viewModel;
Davvero niente altro da esso, io sono sempre la seguente eccezione:
gettospecificato non è valido.
Ma nessuna eccezione interna e nessun contesto in più, per quanto posso dire che sto facendo tutto correttamente.
Il collegamento a un elenco di stringhe funziona correttamente, è quando sostituisco quello con qualsiasi altro oggetto che le cose vanno male.
Qualche idea su dove sto andando male?
Grazie
Dovresti usare "TextCell" invece di "Etichetta" all'interno di DataTemplate e dovrebbe funzionare. –
@ DavidKarlaš Label sta funzionando per me, ma ** dovrei ** sto usando Textcell invece? – JMK
Non sono sicuro se c'è qualche differenza di prestazioni ... Altrimenti ... Se funziona, non c'è bisogno di cambiare;) –