String Properties in XPO(XPO 中的字符串属性)
The example below illustrates how to implement String Properties in an XPO persistent class.
下面的示例说明了如何在XPO持久类中实现字符串属性。
C#
// By default, the string property size is 100.
private string defaulSizeStringProperty;
public string DefaultSizeStringProperty {
get { return defaulSizeStringProperty; }
set { SetPropertyValue(nameof(DefaultSizeStringProperty), ref defaulSizeStringProperty, value); }
}
// The string property size is limited to 15.
private string shortSizeStringProperty;
[Size(15)]
public string ShortSizeStringProperty {
get {
return shortSizeStringProperty;
}
set { SetPropertyValue(nameof(ShortSizeStringProperty), ref shortSizeStringProperty, value); }
}
// The string property size is unlimited. It is displayed via a memo editor.
// By default, this property is not displayed in List View. You can make its column visible with the VisibleInListView attribute.
private string unlimitedSizeStringProperty;
[Size(SizeAttribute.Unlimited), VisibleInListView(true)]
public string UnlimitedSizeStringProperty {
get {
return unlimitedSizeStringProperty;
}
set {
SetPropertyValue(nameof(UnlimitedSizeStringProperty), ref unlimitedSizeStringProperty, value);
}
}
// Delayed loading and compression are applied to this property.
private XPDelayedProperty compressedUnlimitedStringProperty = new XPDelayedProperty();
[Delayed(nameof(compressedUnlimitedStringProperty)), ValueConverter(typeof(StringCompressionConverter))]
public string CompressedUnlimitedStringProperty {
get { return (string)compressedUnlimitedStringProperty.Value; }
set {
compressedUnlimitedStringProperty.Value = value;
OnChanged(nameof(CompressedUnlimitedStringProperty));
}
}
// This property has a list of predefined values.
private string stringWithPredefinedValuesProperty;
[ModelDefault("PredefinedValues", "Predefined Value 1;Predefined Value 2;Predefined Value 3;Predefined Value 4;Predefined Value 5")]
public string StringWithPredefinedValuesProperty {
get { return stringWithPredefinedValuesProperty; }
set { stringWithPredefinedValuesProperty = value; }
}
// This property is displayed in the Rich Text Editor.
private string richTextProperty;
[Size(SizeAttribute.Unlimited)]
[EditorAlias(EditorAliases.RichTextPropertyEditor)]
public string RichTextProperty {
get { return richTextProperty; }
set { SetPropertyValue(nameof(RichTextProperty), ref richTextProperty, value); }
}