Ich habe eine ListView
, die an eine ObservableCollection
bestehend aus viewModels
gebunden ist.Xamarin Forms ListView ObservableCollection nicht aktualisieren
das Ansichtsmodell sieht wie folgt aus:
public string Id{ get; set; }
public string Name{ get; set; }
public bool HasId
{
get { return !(String.IsNullOrEmpty(Id)); }
}
im Frontend XAML:
<ListView x:Name="MyList" ItemsSource="{Binding MyList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Name" FontSize="Small"/>
<StackLayout Spacing="20">
<Entry Text="{Binding Id}"/>
<Button Text="Create Profile" IsEnabled="False">
<Button.Triggers>
<DataTrigger TargetType="Button" Binding="{Binding HasId}" Value="True">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Button.Triggers>
</Button>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Gewünschtes Ergebnis: wenn Benutzertypen in Eintrag (zu Id
binded) sollte die Schaltfläche aktiviert werden .
Tatsächliches Ergebnis: wenn Benutzertypen in Eintrag, (Erraten ich die ObservableCollection
verursachen die Änderung innerhalb des viewmodel
nicht sehen) nichts passiert
Hinweis: Wenn ich hinzufügen/löschen ein Element zu/von Die ObservableCollection
, die Ansicht aktualisiert (wie erwartet).
Alle Vorschläge/Ideen werden sehr geschätzt!
Ihre ViewModel-Klasse muss implementiert werden INotifyPropertyChanged – Jason
@Jason thanks! Ich habe es nicht verstanden, als ich die Dokumentation zum ersten Mal gelesen habe, aber jetzt macht es Sinn. – indubitablee