IValueProvider.SetValue(String) 메서드

정의

컨트롤의 값을 설정합니다.Sets the value of a control.

public:
 void SetValue(System::String ^ value);
public void SetValue (string value);
abstract member SetValue : string -> unit
Public Sub SetValue (value As String)

매개 변수

value
String

설정할 값입니다.The value to set. 공급자는 적절한 데이터 형식으로 값을 변환합니다.The provider is responsible for converting the value to the appropriate data type.

예외

로캘 관련 정보가 잘못된 형식(예: 올바르지 않은 형식의 날짜)으로 컨트롤에 전달되는 경우.If locale-specific information is passed to a control in an incorrect format such as an incorrectly formatted date.

새 값을 문자열에서 컨트롤이 인식하는 형식으로 변환할 수 없는 경우.If a new value cannot be converted from a string to a format the control recognizes.

활성화되지 않은 컨트롤을 조작하려고 시도하는 경우.When an attempt is made to manipulate a control that is not enabled.

예제

다음 예제 코드에는 해당 값을 제한 된 길이의 문자열로 설정할 수 있도록 사용자 지정 컨트롤을 보여 줍니다.The following example code demonstrates a custom control that allows its value to be set to a string of limited length.

/// <summary>
/// Sets the value of the control.
/// </summary>
/// <param name="value">
/// The new value.
/// </param>
void IValueProvider.SetValue(string value)
{
    if (((IValueProvider)this).IsReadOnly)
        throw new InvalidOperationException(
            "Operation cannot be performed.");
    // Arbitrary string length limit.
    if (value.Length > 5)
        throw new ArgumentOutOfRangeException(
            "String is greater than five characters in length.");
    controlValue = value;
}
''' <summary>
''' Sets the value of the control.
''' </summary>
''' <param name="value">
''' The new value.
''' </param>
Private Sub SetValue(ByVal value As String) Implements IValueProvider.SetValue
    If (CType(Me, IValueProvider)).IsReadOnly Then
        Throw New InvalidOperationException("Operation cannot be performed.")
    End If
    ' Arbitrary string length limit.
    If value.Length > 5 Then
        Throw New ArgumentOutOfRangeException("String is greater than five characters in length.")
    End If
    controlValue = value
End Sub

설명

단일 줄 편집 컨트롤은 IValueProvider를 구현하여 해당 내용에 대한 프로그래밍 방식 액세스를 제공합니다.Single-line edit controls support programmatic access to their contents by implementing IValueProvider. 하지만 여러 줄 편집 컨트롤은 IValueProvider를 구현하지 않습니다. 대신, ITextProvider를 구현하여 내용에 대한 액세스를 제공합니다.However, multi-line edit controls do not implement IValueProvider; instead they provide access to their content by implementing ITextProvider.

와 같은 컨트롤 ListItem 하 고 TreeItem 구현 해야 IValueProvider 값 항목 중 하나를 편집할 수 있는 경우 현재에 관계 없이 편집 컨트롤의 모드입니다.Controls such as ListItem and TreeItem must implement IValueProvider if the value of any of the items is editable, regardless of the current edit mode of the control. 부모 컨트롤이 구현 해야 IValueProvider 자식 항목을 편집할 수 있는 경우.The parent control must also implement IValueProvider if the child items are editable.

![편집할 수 있는 목록 항목입니다. ] (~/add/media/uia-valuepattern-editable-listitem.PNG "편집할 수 있는 목록 항목입니다.")Editable list item.
편집 가능한 목록 항목의 예Example of an Editable List Item

적용 대상