Search code examples
c#objectlistview

Can someone tell me what's wrong with this code?


I'm trying to implement a search as you type (like in iTunes). I am using an ObjectListView. Further, I have a textbox that is used to do the search as shown below:

private void textBoxSearch_TextChanged(object sender, EventArgs e)
        {

            string txt = textBoxSearch.Text;
            TextMatchFilter filter = null;
            if (!String.IsNullOrEmpty(txt))
            {
                filter = TextMatchFilter.Contains(myObjectListView, txt);
            }
            // Setup a default renderer to draw the filter matches
            if (filter == null)
                myObjectListView.DefaultRenderer = null;
            else
            {
                myObjectListView.DefaultRenderer = new HighlightTextRenderer(filter);

                // Uncomment this line to see how the GDI+ rendering looks
                myObjectListView.DefaultRenderer = new HighlightTextRenderer { Filter = filter, UseGdiTextRendering = false };
            }

            // Some lists have renderers already installed
            HighlightTextRenderer highlightingRenderer = myObjectListView.GetColumn(0).Renderer as HighlightTextRenderer;
            if (highlightingRenderer != null)
                highlightingRenderer.Filter = filter;

            myObjectListView.ModelFilter = filter;
        }

Can someone figure out why this doesn't work? The above code is meant to filter search results as the user types in the textbox (Like iTunes does, if you have ever used itunes). Apparently, up to this point, nothing happens. It seems like this code does not even execute.


Solution

  • Per this, the ObjectListView has a property named UseFiltering that is false by default and must be set to true to enable filtering.