1

我有一个 FlowLayoutPanel ,我填充了一个 custom UserControl,并且我TextBox在表单顶部有一个我想用来过滤结果的表单。每个都UserControl存储它的属性,但我不确定如何使用这些属性进行过滤。

例如,假设 myUserControl包含如下内容:

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

那么我将如何从 the 中获取条目TextBox并将其与 and 进行[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 回答