using System.Collections.ObjectModel; using System.Diagnostics; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Newtonsoft.Json; using RustTools.DataList; using RustTools.muqing; using RustTools.ViewModels; // To learn more about WinUI, the WinUI project structure, // and more about our project templates, see: http://aka.ms/winui-project-info. namespace RustTools.Views; /// /// 动态界面 /// public sealed partial class ConcernPage : Page { public ConcernViewModel ViewModels { get; set; } public ObservableCollection communitylist = []; public ObservableCollection MovingInfoList = []; private bool IsLogin = false; public ConcernPage() { ViewModels = App.GetService(); InitializeComponent(); //如果未登陆 Init(); if (IsLogin) { } } private async void Init() { try { var ini = new IniHelper(); ini.Load(IniHelper.FILE.User); var account = ini.GetValue(IniHelper.CODE.User, IniHelper.KEY.account); var value = await ApiFox.community.getList(account, true, 0); //Debug.WriteLine(value); if (value == string.Empty) return; var response = JsonConvert.DeserializeObject(value); var a = new CommunityList.Data { UserName = "全部", HeadIcon = "/Assets/tool.png", Account = account }; communitylist.Add(a); foreach (var item in response.data) { //item.UserName item.HeadIcon = item.HeadIcon.Replace("..", wl.api); communitylist.Add(item); } if (ListViewA.Items.Count > 0) { ListViewA.SelectedIndex = 0; } } catch (Exception e) { Debug.WriteLine(e); } } /// /// 每个关注的动态消息内容 /// private void dongtaixiaoxi(string account, bool ALL) { MovingInfoList.Clear(); if (account == null) { return; }; if (ALL) { ApiFox.Dynamic.GetAllDynamic(account).ContinueWith((task) => { var value = task.Result; if (string.IsNullOrEmpty(value)) return; // 使用 Newtonsoft.Json 进行反序列化 var response = JsonConvert.DeserializeObject(value); if (response != null && response.Code == 0) { foreach (var item in response.Data) { // 替换头像链接中的相对路径为绝对路径 item.HeadIcon = item.HeadIcon.Replace("..", wl.api); // 将处理后的记录添加到 ObservableCollection 中 MovingInfoList.Add(item); } } else if (response != null) { Console.WriteLine($"Error: {response.Message}"); } }, TaskScheduler.FromCurrentSynchronizationContext()); // 确保UI线程更新 } else { ApiFox.Dynamic.Getlist(account).ContinueWith((task) => { var value = task.Result; if (value == string.Empty) return; var response = JsonConvert.DeserializeObject(value); foreach (var item in response.Data) { item.HeadIcon = item.HeadIcon.Replace("..", wl.api); MovingInfoList.Add(item); } },TaskScheduler.FromCurrentSynchronizationContext()); } } private void Page_SizeChanged(object sender, SizeChangedEventArgs e) { var height = ActualHeight; // 确保使用页面的实际高度 // 检查是否为有效的数值 if (!double.IsNaN(height) && !double.IsInfinity(height) && height > 16) { ListViewA.Height = height - 36; ListViewB.Height = height - 16; } else { ListViewA.Height = 500; // 或者其他适当的默认值 ListViewB.Height = 500; // 或者其他适当的默认值 } } private void ItemsView_ItemInvoked(ItemsView sender, ItemsViewItemInvokedEventArgs args) { gj.sc("You invoked "); } private void ListViewA_SelectionChanged(object sender, SelectionChangedEventArgs e) { // 获取当前选中的项目 var selectedItem = ListViewA.SelectedItem; var data = selectedItem as CommunityList.Data; gj.sc(data?.Account); dongtaixiaoxi(data?.Account, data.UserName.Equals("全部")); } }