Share via

TextSearch Class


Enables a user to quickly access items in a set by typing prefixes of strings.

public ref class TextSearch sealed : System::Windows::DependencyObject
public sealed class TextSearch : System.Windows.DependencyObject
type TextSearch = class
    inherit DependencyObject
Public NotInheritable Class TextSearch
Inherits DependencyObject


The following examples create ComboBox controls that contain images as items instead of text. Functionally, the examples are the same. The first example sets the TextPath property on the ComboBox and the second example sets the Text property on each item in the collection.

<ComboBox IsEditable="true" TextSearch.TextPath="Name">
  <Image Name="Cat" Source="data\cat.png"/>
  <Image Name="Dog" Source="data\dog.png"/>
  <Image Name="Fish" Source="data\fish.png"/>
<ComboBox IsEditable="true">
  <Image TextSearch.Text="Cat" Source="data\cat.png"/>
  <Image TextSearch.Text="Dog" Source="data\dog.png"/>
  <Image TextSearch.Text="Fish" Source="data\fish.png"/>


This class is used to assign a string to items in a control's collection. Assigning a string to each item in the collection accomplishes two objectives. It specifies the text to display when the item is selected, and it enables the user to select an item by typing the assigned string.

For example, assume that a ComboBox contains a collection of Image objects, one of which is an image of a dog. If you assign the string, "Dog" to that item, the user can select the dog by typing the word in the combo box's text box. As soon as the user types enough of the word to distinguish it from other items in the selection, the image of the dog will be selected. If IsEditable is set to true on the ComboBox, "Dog" will appear in the text box.

You can specify the text that identifies an item by using the TextSearch.TextPath property on a control or by setting the Text property on each item in the control's collection. Setting one of these properties ensures that unexpected text is not displayed. If you set the Text property on a control's collection item, the TextPath property will be ignored. If you set the TextPath property to a value that is not the name of an actual property, TextPath is ignored.

XAML Text Usage

You cannot declare this managed class in XAML, but you can use its static properties to assign values in XAML.



Identifies the TextPath attached property.


Identifies the Text attached property.



Gets the DependencyObjectType that wraps the CLR type of this instance.

(Inherited from DependencyObject)

Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)

Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)

Attached Properties


Gets or sets the string that identifies an item in a control's collection.


Gets or sets the name of the items' property that identifies each item in a control's collection.



Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier.

(Inherited from DependencyObject)

Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey.

(Inherited from DependencyObject)

Coerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Inherited from DependencyObject)

Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Inherited from DependencyObject)

Gets a hash code for this DependencyObject.

(Inherited from DependencyObject)

Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Inherited from DependencyObject)

Returns the string to that identifies the specified item.


Returns the name of the property that identifies an item in the specified element's collection.


Gets the Type of the current instance.

(Inherited from Object)

Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Inherited from DependencyObject)

Re-evaluates the effective value for the specified dependency property.

(Inherited from DependencyObject)

Creates a shallow copy of the current Object.

(Inherited from Object)

Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. The specific dependency property that changed is reported in the event data.

(Inherited from DependencyObject)

Returns the local value of a dependency property, if it exists.

(Inherited from DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Sets the value of a dependency property without changing its value source.

(Inherited from DependencyObject)
SetText(DependencyObject, String)

Writes the Text attached property value to the specified element.

SetTextPath(DependencyObject, String)

Writes the TextPath attached property to the specified element.

SetValue(DependencyProperty, Object)

Sets the local value of a dependency property, specified by its dependency property identifier.

(Inherited from DependencyObject)
SetValue(DependencyPropertyKey, Object)

Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Inherited from DependencyObject)

Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Inherited from DependencyObject)

Returns a string that represents the current object.

(Inherited from Object)

Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Applies to

See also