我試圖顯示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);
}
}
,並在MainPage.cs我
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罰款。
但後來我想介紹的過濾。所以我得到的數據,將它們轉換爲一些類並將它們插入到列表中,然後使用LINQ進行過濾(在ObservableCollection中進行過濾似乎更容易)。
基本上我與FormatListAsync()
其中,而不是直接插入數據到ObservableCollection<>
,返回一個List<>
取代PopulateListAsync()
。然後,我有一個「中間人」功能
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
}
我可能只是環槽mylist
並添加一個接一個進入ObservableCollection<>
,但我覺得肯定有一個更好的方法。
我想我應該實現一些PropertyChanged事件或類似的東西,但我嘗試了幾個(例如this one),但未成功。我不認爲我很理解如何實施它。
我不認爲你可以做Value = new ObservableCollection();因爲Value屬性是字符串類型。一個錯字可能? –
只是一個錯字。抱歉。 – rancor1223
你是缺少onPropertyChange爲observablecollection – Master