IValueProvider IValueProvider IValueProvider IValueProvider Interface


Exposes methods and properties to support access by a Microsoft UI Automation client to controls that have an intrinsic value that does not span a range and that can be represented as a string. Implement this interface in order to support the capabilities that an automation client requests with a GetPattern call and PatternInterface.Value.

public : interface IValueProvider
struct winrt::Windows::UI::Xaml::Automation::Provider::IValueProvider
public interface IValueProvider
Public Interface IValueProvider
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)


The value string can be editable, depending on the control and its settings. This pattern has guidelines and conventions that aren't fully documented here. For more info on what this pattern is for, see Value Control Pattern.

IValueProvider is implemented by the existing Windows Runtime class ComboBoxAutomationPeer.

The text models supported by Windows Runtime text controls such as TextBox and RichTextBlock don't use the IValueProvider pattern.

Use ValuePatternIdentifiers if you want to reference the IValueProvider pattern properties from control code when you fire automation events or call RaisePropertyChangedEvent.


IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Gets a value that indicates whether the value of a control is read-only.

public : Platform::Boolean IsReadOnly { get; }
bool IsReadOnly();
public bool IsReadOnly { get; }
Public ReadOnly Property IsReadOnly As bool
bool bool

true if the value is read-only; false if it can be modified.

Value Value Value Value

Gets the value of the control.

public : Platform::String Value { get; }
winrt::hstring Value();
public string Value { get; }
Public ReadOnly Property Value As string
string string

The value of the control.


SetValue(String) SetValue(String) SetValue(String) SetValue(String)

Sets the value of a control.

public : void SetValue(Platform::String value)
void SetValue(winrt::hstring value) const;
public void SetValue(String value)
Public Function SetValue(value As String) As void
String String

The value to set. The provider is responsible for converting the value to the appropriate data type.

See Also