IValueProvider.SetValue(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
设置控件的值。
public:
void SetValue(System::String ^ value);
public void SetValue (string value);
abstract member SetValue : string -> unit
Public Sub SetValue (value As String)
参数
- value
- String
要设置的值。 提供程序负责将值转换为相应的数据类型。
例外
如果向控件传递了格式不正确的区域设置特定信息(如格式不正确的日期)。
如果无法将新值从字符串转换为控件可识别的格式。
当尝试操作未启用的控件时。
示例
下面的示例代码演示了一个自定义控件,该控件允许将其值设置为长度有限的字符串。
/// <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编程访问其内容。 但是,多行编辑控件不实现 IValueProvider;相反,它们通过实现 ITextProvider来提供对其内容的访问。
如果任何项的值是可编辑的,则和 TreeItem 等ListItem控件都必须实现IValueProvider,而不管控件的当前编辑模式如何。 如果子项可编辑,父控件还必须实现 IValueProvider 。
可编辑列表项的示例