private void RecFind_Click(object sender, RoutedEventArgs e) { FindWindow wnd = new FindWindow(); wnd.Owner = Application.Current.MainWindow; wnd.WindowStartupLocation = WindowStartupLocation.CenterOwner; wnd.ShowDialog(); FindWindow.SearchMode result = FindWindow.result; if (result == FindWindow.SearchMode.cancelFind) { MessageBox.Show("CANCEL Search", "Info"); } if (result == FindWindow.SearchMode.byAuthor) { if (!string.IsNullOrWhiteSpace(AuthBox.Text)) { DBClass dbclass = new DBClass(); bufdata = dbclass.QueryRecordByAuthor(AuthBox.Text); RecList.ItemsSource = bufdata; } else { MessageBox.Show("search condition is empty", "Info"); } } if (result == FindWindow.SearchMode.byName) { if (!string.IsNullOrWhiteSpace(NameBox.Text)) { DBClass dbclass = new DBClass(); bufdata = dbclass.QueryRecordByName(NameBox.Text); RecList.ItemsSource = bufdata; } else { MessageBox.Show("search condition is empty", "Info"); } } if (result == FindWindow.SearchMode.byTags) { DBClass dbclass = new DBClass(); bufdata = dbclass.QueryRecord(true); if (TagList.Items.Count > 0) { List <string> Tags = new List <string>(); foreach (var item in TagList.Items) { Tags.Add(item.ToString()); } string[] TagsArray = new string[Tags.Count]; Tags.CopyTo(TagsArray); for (int i = bufdata.Count - 1; i >= 0; i--) { if (!TagsClass.IsContainAllTags(TagsClass.GetTagListFromString(bufdata[i].tagstring), TagsArray)) { bufdata.Remove(bufdata[i]); } } RecList.ItemsSource = bufdata; } else { MessageBox.Show("search condition is empty", "Info"); } } }