private void ListViewDoubleClick(StoreListViewItemInfo target) { this.TabSelectedItem.Value.IsExpanded.Value = true; if (target.Model is StoreCategoryInfo categoryInfo) { if (this.TabSelectedItem.Value is StoreCategoryViewModel categoryViewModel) { var item = categoryViewModel.CategoryViewModels.FirstOrDefault(n => n.Model == categoryInfo); if (item == null) { return; } item.IsSelected.Value = true; } } else if (target.Model is StoreSignatureInfo signatureInfo) { if (this.TabSelectedItem.Value is StoreCategoryViewModel categoryViewModel) { var item = categoryViewModel.SignatureViewModels.FirstOrDefault(n => n.Model == signatureInfo); if (item == null) { return; } item.IsSelected.Value = true; } } else if (target.Model is StoreBoxInfo boxInfo) { if (this.TabSelectedItem.Value is StoreSignatureViewModel signatureViewModel) { var item = signatureViewModel.BoxViewModels.FirstOrDefault(n => n.Model == boxInfo); if (item == null) { return; } item.IsSelected.Value = true; } else if (this.TabSelectedItem.Value is StoreBoxViewModel boxViewModel) { var item = boxViewModel.BoxViewModels.FirstOrDefault(n => n.Model == boxInfo); if (item == null) { return; } item.IsSelected.Value = true; } } }
private IEnumerable <StoreListViewItemInfo> GetListViewItems(IEnumerable <StoreCategoryInfo> categoryInfos, IEnumerable <StoreSignatureInfo> signatureInfos, IEnumerable <StoreBoxInfo> boxInfos, IEnumerable <Seed> seeds, string propertyName, ListSortDirection direction) { var list = new List <StoreListViewItemInfo>(); foreach (var item in categoryInfos) { var vm = new StoreListViewItemInfo(); vm.Icon = AmoebaEnvironment.Icons.Box; vm.Name = item.Name; vm.Length = item.Length; vm.CreationTime = item.CreationTime; vm.Model = item; list.Add(vm); } foreach (var item in signatureInfos) { var vm = new StoreListViewItemInfo(); vm.Icon = AmoebaEnvironment.Icons.Box; vm.Name = item.AuthorSignature.ToString(); vm.Length = item.Length; vm.CreationTime = item.CreationTime; vm.Model = item; list.Add(vm); } foreach (var item in boxInfos) { var vm = new StoreListViewItemInfo(); vm.Icon = AmoebaEnvironment.Icons.Box; vm.Name = item.Name; vm.Length = item.Length; vm.CreationTime = item.CreationTime; vm.Model = item; list.Add(vm); } foreach (var item in seeds) { var vm = new StoreListViewItemInfo(); vm.Icon = IconUtils.GetImage(item.Name); vm.Name = item.Name; vm.Length = item.Length; vm.CreationTime = item.CreationTime; _cacheStates.TryGetValue(item.Metadata, out var state); vm.State = state; vm.Model = item; list.Add(vm); } return(this.Sort(list, propertyName, direction, 100000)); }