private void FileListView_SelectionChange(object sender, SelectionChangedEventArgs e) { ListView listView = sender as ListView; if (listView != null) { ExcelFileListItem item = listView.SelectedItem as ExcelFileListItem; _excelItemChoosed = item; } _IDItemSelected = null; if (_excelItemChoosed == null) { idListView.ItemsSource = null; propertyDataGrid.ItemsSource = null; checkBox_changed.IsEnabled = false; checkBox_changed.IsChecked = false; } else { propertyDataGrid.ItemsSource = null; idListView.ItemsSource = GlobalCfg.Instance.GetIDList(_excelItemChoosed.FilePath); GlobalCfg.Instance.ResetPreviousIsNeedGen(); checkBox_changed.IsEnabled = true; checkBox_changed.IsChecked = false; } JudgeMultiFuncBtnState(); EditingModeRender(); if (listView != null && idListView.ItemsSource == null) { listView.SelectedItem = null; } }
private void FileListView_SelectionChange(object sender, SelectionChangedEventArgs e) { ListView listView = sender as ListView; ExcelFileListItem item = listView.SelectedItem as ExcelFileListItem; _listItemChoosed = item; if (item == null) { return; } _IDItemSelected = null; JudgeMultiFuncBtnState(); idListView.ItemsSource = null; propertyDataGrid.ItemsSource = null; ResetGenBtnEnable(); idListView.ItemsSource = GlobalCfg.Instance.GetIDList(item.FilePath); ResetGenBtnState(); }
private void FilterItems(ListView list) { switch (list.Name) { case "excelListView": ObservableCollection <ExcelFileListItem> excelRes = excelFiles; if (IsCheckEditing) { excelRes = GetFilteredCollection(excelRes, FILTER_BY_EDITING); } list.ItemsSource = excelRes; if (IsSearchingExcel) { excelRes = GetMatchItem(excelRes, excelSearchKey); } list.ItemsSource = excelRes; break; case "idListView": if (_excelItemChoosed == null) { return; } ObservableCollection <IDListItem> idRes = GlobalCfg.Instance.GetIDList(_excelItemChoosed.FilePath); if (IsCheckChanged) { idRes = GetFilteredCollection(idRes, FILTER_BY_STATES); } list.ItemsSource = idRes; if (IsSearchingId) { idRes = GetMatchItem(idRes, idSearchKey); } list.ItemsSource = idRes; break; } #region 获得搜索数据 ObservableCollection <T> GetMatchItem <T>(ObservableCollection <T> sourceItem, string input) { bool IsMatchFromStart = true; if (input.StartsWith("*")) { IsMatchFromStart = false; input = input.Substring(1); } ObservableCollection <T> searchRes = new ObservableCollection <T>(); for (int i = 0; i < sourceItem.Count; i++) { T item = (T)sourceItem[i]; string ss = null; if (item is ExcelFileListItem) { ExcelFileListItem excelItem = item as ExcelFileListItem; ss = excelItem.Name; } else if (item is IDListItem) { IDListItem idItem = item as IDListItem; ss = idItem.IdDisplay; } else { return(null); } if (StringHelper.StringMatch(ss, input, IsMatchFromStart, false)) { searchRes.Add(item); } } return(searchRes); } #endregion #region 获得过滤后数据 ObservableCollection <T> GetFilteredCollection <T>(ObservableCollection <T> sourceItem, string filterBy) { ObservableCollection <T> filteredCollection = new ObservableCollection <T>(); for (int j = 0; j < sourceItem.Count; j++) { T item = (T)sourceItem[j]; if (item is ExcelFileListItem && filterBy == FILTER_BY_EDITING) { ExcelFileListItem excelItem = item as ExcelFileListItem; if (excelItem.IsEditing) { filteredCollection.Add(item); } } else if (item is IDListItem) { IDListItem idItem = item as IDListItem; if (filterBy == FILTER_BY_STATES) { for (int i = 0; i < idItem.States.Count; i++) { if (idItem.States[i] != "") { filteredCollection.Add(item); break; } else if (idItem.IsApplys[i]) { filteredCollection.Add(item); break; } } } } } return(filteredCollection); } #endregion }