XAMLにアイテムのリストを表示しようとしています。私は公開APIからリストを取得し、必要なクラスに変換してから表示したい。ObservableCollectionがUIに表示されない
public static async Task PopulateListAsync(ObservableCollection<MyClass> myList) {
var listContainer = await GetListAsync();
foreach (var item in listContainer) {
//converting from one class to another, editing some properties and such
myList.Add(item);
}
}
と私は
public ObservableCollection<MyClass> Value { get; set; }
public MainPage() {
this.InitializeComponent();
Value = new ObservableCollection<MyClass>();
}
private async void Page_Loaded(object sender, RoutedEventArgs e) {
await PopulateListAsync(Value);
}
を持っていた私は、XAMLの罰金に表示MainPage.csに。
しかし、私はフィルタリングを導入したかったのです。だから私は、データを取得し、それらをいくつかのクラスに変換してリストに挿入し、LINQでフィルタリングします(ObservableCollectionでフィルタリングする方が簡単です)。
PopulateListAsync()
は、基本的にに直接データを挿入する代わりにFormatListAsync()
に置き換え、List<>
を返します。それから私は、私はおそらくループトラフmylist
可能性があり、それをObservableCollection<>
に一つずつ追加し、しかし確実に、より良い方法があるように私は感じ
public static async Task PopulateListAsync(ObservableCollection<MyClass> myList) {
myList = new ObservableCollection<MyClass>(await FormatListAsync());
//filtering itself isn't implemented yet, but it would be placed here
}
「仲介者」の機能を持っています。
PropertyChangedイベントなどを実装するはずですが、いくつか試みましたが(例:this one)、失敗しました。私はそれを実装する方法をかなり理解しているとは思わない。
私はあなたができるとは思わない値=新しいObservableCollection(); Valueプロパティはstring型であるためです。おそらくタイプミス? –
ちょうどタイプミス。ごめんなさい。 – rancor1223
ObservableCollectionのOnPropertyChangeがありません – Master