1

UserControlカスタムで入力するFlowLayoutPanelがTextBoxあり、フォームの上部に結果のフィルタリングに使用するがあります。それぞれUserControlにプロパティが格納されていますが、それらのプロパティを使用してフィルタリングする方法がわかりませんでした。

たとえば、myUserControlに次のようなものが含まれているとします。

// snip..
public string Text { get; set; }
public string Description { get; set; }
//snip..

次に、からエントリを取得して、との両方とTextBox比較するにはどうすればよいですか?最初からだけでなく、テキスト内で検索する必要があります。[usercontrol].Text[usercontrol].Description

適切な結果をフィルタリングしたら、それらだけを表示したいと思います。それらをすべてフラッシュして、該当するものだけで再構築する必要がありますか、それともフィルターに一致しないものを削除するだけですか?

私はこれが非常に初心者の質問かもしれないことを知っています、私はそれからどこから始めればよいのか分かりません。何か案は?

4

1 に答える 1

3

イベントのすべてのユーザーコントロールをループしてTextBoxChanged、条件に一致しない場合は、可視性を折りたたみに設定できます。次のようになります。

private textBoxTextChanged(obj sender, EventArgs e)
{
    foreach(UserControl uc in flowLayoutPanel.Children)
    {
        if(!uc.Text.Contains(textBox.Text) && !uc.Description.Contains(textBox.Text))
        {
            uc.Visibility = Visibility.Collapsed;
        }
        else
        {
            //Set Visible if it DOES match
            uc.Visibility = Visibility.Visible;
        }
    }
}
于 2012-06-14T01:39:08.837 に答える