2016-03-21 11 views
0

私はリストビューを持ち、そのアイテムソースは不可視のObservable Collectionプロパティにバインドされています。 私の質問は、そのリストビューが存在するPageクラスの外でそのコレクションにアクセスしたり、そのコレクションを変更する方法です。 私は他のページからそのListViewに新しい項目を変更したり追加したりしたいので、そのコレクションを外部に変更したいと思います。UWP ListViewバインディングを変更する方法Observable Colletion(ページクラス外)

答えて

2

私はこの問題をApp.xaml.cs.xのstaticプロパティで解決しています。 リポジトリ/コレクションには、必要なページからアクセスできます。 私はページに移動するたびに、私のバインドされたプロパティを通じてApp.MyCollectionにアクセスします。

ゲッターが新しいObervableCollection(App.MyCollection)を作成するプロパティを作成できます。 現在のプライベートメンバーがnullの場合。

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; 
     } 
    } 

にアクセス.OrderHistory。

ザ・だけで、あなたのOrderHistoryクラスであるの世話をする必要があると思う:私はまさにあなたが提案しているWHT得ていないのです

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)); 
     } 
    } 
} 
+0

、あなたはいくつかのコードでそれをしてください明確にすることができますか?ありがとう。 P.S:私は静的なパブリックプロパティを作成しようとし、そのプライベートコレクションを割り当てました。そして、私はそれに変更を加えましたが、変更は静的なプロパティでのみ発生し、私のListViewのアイテムは更新されていません。 –

+0

投稿を編集しました。これがあなたを助けるかどうか見てください。 – wuerzelchen

+0

ありがとう、それは理解しやすいとそれは私を助けた:) –

関連する問題