/// <summary> /// カテゴリフィルタの文字列を解釈して /// 引数のSelfMemoItemがフィルタに引っかかるかどうかを返す /// </summary> /// <param name="memo">フィルタをかける対象</param> /// <returns>フィルタに引っかかればTrue</returns> private bool CheckCategoryFilter(SelfMemoItem memo) { // フィルタが無効なら全て通す //if (UseCategoryList.Value == false) return true; // フィルタの選択肢がNULLならすべて通す if (string.IsNullOrEmpty(CategoryListSelected.Value)) { return(true); } // 指定されたCategoryの項目のみTrueを返す return(memo.CategoryR.Value.Equals(CategoryListSelected.Value)); }
/// <summary> /// プロパティに保持中の情報を新規SelfMemoとして追加する /// </summary> private void AddMemoToList() { SelfMemoItem newmemo = new SelfMemoItem(Word.Value, ShortWord.Value, Description.Value, Category.Value); if (!MemoList.Contains(newmemo)) { MemoList.Add(newmemo); // プロパティを空白で初期化 Word.Value = ""; ShortWord.Value = ""; Description.Value = ""; Category.Value = ""; //SaveMemoFile(); // MemoListのハンドラで実施されるのでここでは不要 // WordのTextboxをフォーカスする IsSelected.Value = true; } }
/// <summary> /// フィルタ文字列を解釈(スペース区切りでAND検索)して /// 引数のSelfMemoItemがフィルタに引っかかるかどうかを返す /// </summary> /// <param name="filter">スペース区切りのフィルタ文字列</param> /// <param name="memo">フィルタをかける対象のSelfMemoItem</param> /// <returns>フィルタに引っかかればTrue</returns> private bool CheckFilterStr(string filter, SelfMemoItem memo) { // フィルターが空文字列ならチェック通す if (string.IsNullOrEmpty(filter)) { return(true); } string[] filters = filter.Split(new char[] { ' ', ' ' }); int found = 0; // いずれかのプロパティに該当文字列が含まれていたらカウントアップ foreach (string f in filters) { if (f.Length == 0) { found++; continue; } string fl = f.ToLower(); if (memo.KeywordR.Value.ToLower().Contains(fl)) { found++; } else if (memo.Keyword2R.Value.ToLower().Contains(fl)) { found++; } else if (memo.DescriptionR.Value.ToLower().Contains(fl)) { found++; } else if (memo.CategoryR.Value.ToLower().Contains(fl)) { found++; } } return(found == filters.Length); }