修离线缓存
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
using AnotherReplayReader.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
@@ -20,16 +22,21 @@ namespace AnotherReplayReader
|
||||
{
|
||||
InitializeComponent();
|
||||
_identity = identity;
|
||||
Refresh();
|
||||
Refresh(true);
|
||||
}
|
||||
|
||||
private async void Refresh()
|
||||
private async void Refresh(bool showCached)
|
||||
{
|
||||
_setIPButton.IsEnabled = false;
|
||||
try
|
||||
{
|
||||
_dataGrid.Items.Clear();
|
||||
_dataGrid.Items.Add(new IpAndPlayer { Ip = 0, Id = "正在加载..." });
|
||||
var loading = new IpAndPlayer[] { new() { Ip = 0, Id = "正在加载..." } };
|
||||
_dataGrid.ItemsSource = loading;
|
||||
if (showCached)
|
||||
{
|
||||
await Display();
|
||||
_dataGrid.ItemsSource = loading.Concat(_dataGrid.ItemsSource.Cast<IpAndPlayer>());
|
||||
}
|
||||
await _identity.Fetch();
|
||||
await Display();
|
||||
}
|
||||
@@ -45,10 +52,10 @@ namespace AnotherReplayReader
|
||||
|
||||
private async Task Display(string filter = "", string nameFilter = "")
|
||||
{
|
||||
var newList = await Task.Run(() =>
|
||||
var result = await Task.Run(() =>
|
||||
{
|
||||
var pinyin = nameFilter.ToPinyin();
|
||||
return _identity
|
||||
var query = _identity
|
||||
.AsSortedList()
|
||||
.Where(x =>
|
||||
{
|
||||
@@ -61,13 +68,10 @@ namespace AnotherReplayReader
|
||||
return true;
|
||||
}
|
||||
return x.Id.ContainsIgnoreCase(nameFilter);
|
||||
})
|
||||
.ToArray();
|
||||
});
|
||||
return new ObservableCollection<IpAndPlayer>(query);
|
||||
});
|
||||
|
||||
_dataGrid.Items.Clear();
|
||||
_dataGrid.ItemsSource = newList;
|
||||
_dataGrid.Items.Refresh();
|
||||
_dataGrid.ItemsSource = result;
|
||||
}
|
||||
|
||||
private async void OnClick(object sender, RoutedEventArgs e)
|
||||
@@ -97,7 +101,7 @@ namespace AnotherReplayReader
|
||||
MessageBox.Show(this, "设置 IP 表失败");
|
||||
}
|
||||
|
||||
Refresh();
|
||||
Refresh(false);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user