using System.Collections.ObjectModel;
namespace XFEExtension.NetCore.WinUIHelper.Interface;
///
/// 指定类型列表的视图模型接口
///
/// 模型类型
public interface IListViewModel where T : class
{
ObservableCollection ViewList { get; set; }
List ModelList { get; set; }
///
/// 加载到视图列表
///
///
void LoadToViewList(IEnumerable list)
{
Clear();
foreach (var item in list)
Add(item);
}
///
/// 添加到视图列表
///
///
void AddToViewList(IEnumerable list)
{
foreach (var item in list)
ViewList.Add(item);
}
///
/// 清除视图列表
///
void Clear() => ViewList.Clear();
///
/// 向视图列表添加一个元素
///
///
void Add(T item) => ViewList.Add(item);
///
/// 从视图列表中移除指定元素
///
///
void Remove(T item) => ViewList.Remove(item);
///
/// 在视图列表指定位置移除一个元素
///
///
void RemoveAt(int index) => ViewList.RemoveAt(index);
///
/// 视图列表中是否包含指定元素
///
///
///
bool Contains(T item) => ViewList.Contains(item);
///
/// 使用指定表达式搜索模型列表(而非视图列表)
///
///
///
IEnumerable Search(Func predicte) => ModelList.Where(item => predicte(item));
}