Ich habe eine Seite, auf der ich eine Listenansicht habe und ihre Elementquelle an eine Observable Collection-Eigenschaft gebunden ist, die natürlich nicht statisch ist. Meine Frage ist, wie kann ich auf diese Sammlung außerhalb der Page-Klasse, auf der sich diese ListView befindet, zugreifen oder ändern. Ich möchte diese Sammlung außerhalb ändern, weil ich neue Elemente zu diesem ListView von anderen Seiten auch ändern oder hinzufügen möchte.UWP Wie man ListView Binding ändert Observable Colletion außerhalb der Seitenklasse
0
A
Antwort
2
Ich löse dieses Problem mit einer statischen Eigenschaft in meiner App.xaml.cs. So kann ich von jeder beliebigen Seite aus auf mein Repository/meine Sammlung zugreifen. Jedes Mal, wenn ich auf die Seite navigiere, gehe ich über meine gebundene Eigenschaft auf App.MyCollection.
Sie können eine Eigenschaft erstellen, bei der der Getter eine neue ObervableCollection (App.MyCollection) erstellen würde. Wenn das aktuelle private Mitglied null ist.
App.xaml.cs
private static IEnumerable<OrderHistory> _orderHistory;
public static IEnumerable<OrderHistory> OrderHistory
{
get
{
if (_orderHistory == null)
_orderHistory = new ObservableCollection<OrderHistory>();
return _orderHistory;
}
set
{
if (_orderHistory != value)
_orderHistory = value;
}
}
}
CodeBehind.xaml.cs
private ObservableCollection<OrderHistory> _orderHistoryList;
public ObservableCollection<OrderHistory> OrderHistoryList
{
get
{
if (_orderHistoryList == null)
_orderHistoryList = new ObservableCollection<OrderHistory>(App.WorkOrderHistory);
return _orderHistoryList;
}
}
Wenn Sie etwas wollen auf die Eigenschaften der Klasse in der Liste ändern, dann zugreifen es nur in App .Bestellverlauf.
Die denken nur darauf achten müssen von in Ihrem OrderHistory Klasse:
public class OrderHistory : INotifyPropertyChanged
{
private bool _isAvailable;
public bool IsAvailable {
get
{
return _isAvailable;
}
set
{
if(_isAvailable != value)
{
_isAvailable = value;
this.NotifyPropertyChanged();
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Verwandte Themen
- 1. Windows-10 UWP Binding Bild URL zu Bildquelle in ListView
- 2. UWP ListView, wie man Artikelhöhe steuert - Bereich um das ListViewItem
- 3. UWP: Wie man ein Bild in der Größe ändert
- 4. Wie ändert man das visuelle Verhalten eines ListViewItem in UWP?
- 5. UWP ListView Element Kontextmenü
- 6. UWP Semantic Zoom, Listview, Visual
- 7. Wie ändert man das Aussehen von ListView?
- 8. Wie ändert man ListView in strings.xml?
- 9. Metro App - ListView - Wie man die Hintergrundfarbe von ListViewItems ändert
- 10. UWP ListView-Objekt ändern Höhe
- 11. XAML ListView Binding
- 12. ArgumentOutOfRangeException auf veränderte colletion
- 13. UWP Listview in Kontakt Modus
- 14. uwp win10 Listview SelectedItem Style
- 15. UWP ListView ItemClick
- 16. UWP Listview in ContentDialog Scrollen nicht
- 17. UWP InvokeCommandAction auf TextBox in ListView MVVM
- 18. Erste sichtbare Gruppe in der ListView UWP
- 19. Wie Einfügen eines VisualState-Auslösers in einem ListView in UWP?
- 20. UWP, MySQL, gefüllte ListView, implementieren CRUD-Operationen
- 21. Binding Listview SelectedItems für Aktionen
- 22. CsvHelper Map Colletion
- 23. Wie paging ich in UWP ListView
- 24. Wie UWP drucken ListView ItemTemplate drucken
- 25. UWP Listview nicht geladen Artikel
- 26. Binding ComboBox zu Enum-Wörterbuch in UWP
- 27. UWP PivotItem ListView TabChange Problem
- 28. Binding SelectedItems von ListView zu ViewModel
- 29. Wie macht man StackPanel um den Hintergrund wie ListView Element in UWP zu ändern?
- 30. Nativescript: Angular2 ListView nicht aktualisiert, während Observable
ich nicht immer wht genau schlagen Sie vor, können Sie es mit einigen Code klären bitte? Vielen Dank. P.S: Ich habe versucht, eine statische öffentliche Eigenschaft zu erstellen und diese private Sammlung zugewiesen. Und dann habe ich Änderungen daran vorgenommen, aber Änderungen treten nur in dieser statischen Eigenschaft auf und meine ListView-Elemente werden nicht aktualisiert. –
Ich habe den Beitrag bearbeitet. Bitte schau, ob dir das weiterhilft. – wuerzelchen
vielen dank es ist einfach zu verstehen und es hat mir geholfen :) –