Вы должны использовать атрибут System.ComponentModel.Data.Annotations.StringLength (dot.NET 4), чтобы задать минимальную длину строки и проверить ее в своих данных. Кроме того, (и люди будут насмехаться над этим, потому что обычно это плохой дизайн *), я бы выбрасывал IntoridDataException («Вы должны ввести имя в атрибуте») из ctor, когда Имя не заполнено.
Причина, по которой я бы использовал это, заключается в том, что это атрибут времени разработки, и исключение будет запускаться при запуске приложения, поэтому его будет легче исправить для разработчика, это не лучший вариант, но я этого не делаю уметь общаться с дизайнером.
Я искал способы прямой связи с предупреждениями / ошибками в ErrorList, но до сих пор я не нашел простого способа сделать это, кроме создания собственного пользовательского дизайнера или надстройки. Я много думал о создании надстройки, которая будет искать SendWarning, SendError, настраиваемые атрибуты, но пока не осуществит это.
как я сказал
public sealed class TestPropertyAttribute : System.Attribute
{
[System.ComponentModel.DataAnnotations.StringLength(50),Required]
public string Name
{
get { return _name; }
set
{
if (String.IsNullOrEmpty(value)) throw new InvalidDataException("Name is a madatory property, please fill it out not as null or string.Empty thanks"); }
else
_name= value;
}
string _name;
}