Comparto el código https://github.com/PauZoffoli/XamarinObservableCollection
Introducción a Xamarin
Todo lo que aprenderás sobre Xamarin Forms
¿Qué es Xamarin?
Instalación y configuración
Requerimientos de hardware y software
Introducción a Instalación de Visual Studio .NET y Herramientas
Instalación de Visual Studio .NET en Windows
Instalación de Visual Studio .NET for Mac
Configuración de Xamarin para iOS
Fundamentos de Xamarin.Forms
Mi primera app con Xamarin.Forms
Xamarin.Forms vs. Xamarin clásico
Estrategias para compartir código
Arquitectura de Xamarin.Forms
Anatomía de una aplicación
Arquitectura de Xamarin.Forms
Sistema de Propiedades Enlazables
Sistema de Propiedades Enlazables
Usando y creando Propiedades Enlazables
Propiedades Adjuntas
Manejo de Eventos
Manejo de eventos
Ciclo de vida
El Lenguaje XAML
¿Qué es XAML?
Espacios de Nombres XML
Sintaxis de subelementos y de contenido
Extensiones de Marcado
Recursos
XAML compilado
Interfaz de Usuario
Contenedores
Controles comunes
Creación de controles personalizados
Estilos
Triggers en Estilos
Diccionarios Mezclados
Transformaciones y Animaciones
Navegación
DisplayAlert y DisplayActionSheet
MessagingCenter
Enlace de Datos
Enlace de Datos
Interfaces de notificación
La clase ObservableCollection<t>
Contexto de Enlace de Datos
Enlace entre elementos
Propiedad StringFormat
Plantillas de Datos
Convertidores de Valor
Comandos
¿Qué son los Comandos?
Implementación básica e implementaciones existentes
El Patrón de Diseño Model-View-ViewModel (MVVM)
Introducción al patrón de diseño MVVM
¿Qué es MVVM?
Componentes del Patrón
Proyecto: Pomodoro
App Pomodoro
Continuando con la app Pomodoro
Concluyendo nuestra app Pomodoro
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
La clase ObservableCollection es la clase ideal para manejar colecciones de datos ya que implementa tanto INotifyCollectionChanged como INotifyPropertyChanged de manera intrínseca, y realiza la actualización del control de lista enlazado de manera automática como el ListView. Existen otros controles de lista que también utilizan este mismo modelo de actualización de propiedades como el <Picker />, entre otros.
Una recomendación fundamental en el desarrollo de aplicaciones con Xamarin.Forms es que no debemos meternos con los datos directamente de la interfaz de usuario, sino siempre, a través de las propiedades y los objetos que estén enlazados, dejando que las estructuras de Enlace de Datos se encarguen del trabajo de actualización.
Aportes 6
Preguntas 3
Comparto el código https://github.com/PauZoffoli/XamarinObservableCollection
SOLUCIÓN A LISTVIEW CON ITEMS EN BLANCO
Después de algunas horas intentando y debuggeando así como indagando en el libro del profesor Rodrigo llegué a la conclusión que al ListView le falta un “DataTemplate” para que se aprecie correctamente.
<ContentPage.Resources>
<local:Disco x:Key="disco1"
Titulo="Let It Be"
Banda="The Beatles" />
<local:Datos x:Key="datos1" />
<DataTemplate x:Key="DiscoDataTemplate">
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackLayout>
<Label Text="{Binding Titulo}" />
<Label Text="{Binding Banda}" />
</StackLayout>
</Grid>
</ViewCell>
</DataTemplate>
</ContentPage.Resources>
<Grid BindingContext="{Binding Source={StaticResource datos1}}">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListView ItemsSource="{Binding Discos, Mode=TwoWay}"
SelectedItem="{Binding DiscoSeleccionado, Mode=TwoWay}"
ItemTemplate="{StaticResource DiscoDataTemplate}"
HasUnevenRows="True" />
<StackLayout Grid.Row="1">
<Label Text="{Binding DiscoSeleccionado.Titulo, Mode=OneWay}" />
<Label Text="{Binding DiscoSeleccionado.Banda, Mode=OneWay}"/>
<Button Text="AGREGAR DISCO"
Clicked="OnClicked" />
</StackLayout>
</Grid>
Nota: lo más probable es que al momento del curso las reglas de la versión de Xamarin no eran tan estrictas con el ListView pero actualmente lo son, al parecer…
No me he metido con ninguno de los archivos en donde me marca error,el problema comenzó cuando agregue el Listview,que de hecho quite para ver si solucionaba el problema,si alguien pudiese indicarme que podría estar causando esos errores se lo agradecería mucho.
hay que tener en cuenta que cualquier propiedad dentro del objeto que usemos dentro de la colección y que queramos enlazar debe implementar INotifyPropertyChanged (Perdí tiempo con eso).
¿Tambien podriamos traer los diccionarios dinamicamente en formato JSON?
Buenas tardes
Me gustaria saber por que razon cuando la lista sobrepas los 200 elementos deja de pintar algunos renglones?
Como puedo hacer para que esto no suceda?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.