Üzerinde bir liste görünümü var ve madde kaynağı, statik olmayan bir Gözlemlenebilir Koleksiyon özelliğine bağlı. Sorum şu: Bu koleksiyonun, hangi liste görünümünün bulunduğu Page sınıfının dışında nasıl erişebilirim veya değiştirebilirim. Bu koleksiyonu dışarıda değiştirmek istiyorum, çünkü ListView'e başka sayfalardan da yeni öğeler eklemek veya eklemek istiyorum.UWP ListView bağıntısının nasıl değiştirileceği Sayfa sınıfının dışındaki Gözlemlenebilir Colletion
Q
UWP ListView bağıntısının nasıl değiştirileceği Sayfa sınıfının dışındaki Gözlemlenebilir Colletion
0
A
cevap
2
Bu sorunu, App.xaml.cs sayfamdaki statik bir Özellikle çözüyorum. Bu yüzden Repository/Koleksiyonuma istediğiniz herhangi bir Sayfadan erişebiliyorum. Sayfada her gittiğimde, bağlanmış mülküm aracılığıyla App.MyCollection'a erişeceğim.
Alıcınızın yeni bir ObervableCollection (App.MyCollection) oluşturduğu bir özellik oluşturabilirsiniz; Geçerli özel üye boşsa .
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;
}
}
Listede sınıfının özelliklerine şey değiştirmek istiyorum
, o zaman sadece Uygulaması'nda erişmek .Sipariş Geçmişi.sadece siz OrderHistory sınıfında olduğu bakmak gerektiğini düşünüyorum: Ben tam olarak önerdiğiniz wht almıyorum
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));
}
}
}
, bazı koduyla lütfen netleştirebilirsiniz? Teşekkürler. P.S: Statik bir kamu mülkünü yapmayı denedim ve o özel koleksiyona tahsis ettim. Ve sonra değişiklik yaptım, ancak değişiklikler yalnızca bu statik özellikte oluşur ve ListView öğelerim güncelleştirilmiyor. –
Yayını düzenledim. Bu size yardımcı olup olmadığını bir göz atın. – wuerzelchen
çok teşekkürler, anlaşılması kolay ve bana yardımcı oldu :) –