Атрибут DisplayName
От: DimaSoft  
Дата: 26.02.05 17:16
Оценка:
Ничего не пойму, что-то, наверное, торможу...:

using System;
using System.ComponentModel;
...
class MyClass
{
public int _firstProperty;

[DisplayName("Свойство 1")]
[Description("Первое свойство")]
[Category("Общие настройки")]
public int FirstProperty
{
get {return _firstProperty;}
set {_firstProperty=value;}
}
}

Одна ошибка: "The type or namespace name 'DisplayName' could not be found..."

Пробовал [System.ComponentModel.DisplayName("Свойство 1")]

Укажите мне, пожалуйста, где ошибка.
Заранее благодарен.

P.S. VisualStudio 2003, .NET Framework 1.1
и в MSDN-е не находится DisplayNameAttribute
Re: Атрибут DisplayName
От: EM Великобритания  
Дата: 26.02.05 17:33
Оценка:
Здравствуйте, DimaSoft, Вы писали:

DS>Ничего не пойму, что-то, наверное, торможу...:




В ComponentModel такого атрибута нету
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Атрибут DisplayName
От: Аноним  
Дата: 26.02.05 18:09
Оценка:
> Одна ошибка: "The type or namespace name 'DisplayName' could Пробовал [System.ComponentModel.DisplayName("Свойство 1")] Укажите мне, пожалуйста, где ошибка.

Namespace: System.ComponentModel

DisplayNameAttribute class

.NET Framework Version Information
Supported in: 2.0


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Атрибут DisplayName
От: DimaSoft  
Дата: 26.02.05 18:09
Оценка:
Здравствуйте, EM, Вы писали:

EM>В ComponentModel такого атрибута нету


Это я уже понял...
А где есть?

Я читал статью на RSDN-е "Конфигурирование .NET-приложений" Андрея Корявченко; и там не указано, где находится этот атрибут, есть лишь
using System;
using System.ComponentModel;
Re: Атрибут DisplayName
От: DimaSoft  
Дата: 26.02.05 20:11
Оценка:
А>.NET Framework Version Information
А>Supported in: 2.0

А как в таком случае сделать следующее:
Компонент PropertyGrid, надо, чтобы свойства класса отображались в понятном конечному пользователю виде, по-русски?
И все это в 1.1.
Re: Атрибут DisplayName
От: Аноним  
Дата: 26.02.05 21:21
Оценка:
> А как в таком случае сделать следующее:
Компонент PropertyGrid, надо, чтобы свойства класса отображались в понятном конечному пользователю виде, по-русски? И все это в 1.1.


Примерно так:

[TypeConverter(MyClassTypeConverter)]
class MyClass
{
[MyDisplayName(...)]
public int Value
{
get {...}
set {...}
}
}


public class MyDisplayName : Attribute
{
public string Text
{
get {...}
}
}

public class MyPropertyDescriptor : PropertyDescriptor
{

public override string DisplayName
{
get
{
// возвращать MyDisplayName.Text
}
}
}

public class MyClassTypeConverter : TypeConverter
{
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{
return true;
}

public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
{
MyPropertyDescriptor[] arr = new MyPropertyDescriptor[...];

arr[0] = new MyPropertyDescriptor(.....);
...

PropertyDescriptorCollection ret = new PropertyDescriptorCollection(arr);
return ret;
}
}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Атрибут DisplayName
От: akasoft Россия  
Дата: 27.02.05 10:25
Оценка:
Здравствуйте, DimaSoft, Вы писали:

DS>А где есть?


А посмотри DisplayNameAttribute.cs из Януса. Папка \PropertyGridCustomizer\ проекта. Там и другие интересные файлики есть. Адрес репозитория Януса: svn://rsdn.ru/Janus .
... << RSDN@Home 1.1.4 beta 4 rev. 345 silent >>
Re: Атрибут DisplayName
От: Daenur Россия  
Дата: 28.02.05 21:33
Оценка:
Здравствуйте, DimaSoft, Вы писали:

DS>Ничего не пойму, что-то, наверное, торможу...:


см. здесь
Автор: Daenur
Дата: 07.02.05
(_2B || !_2B)
Re[2]: Атрибут DisplayName
От: DimaSoft  
Дата: 04.03.05 08:39
Оценка:
Здравствуйте, Daenur, Вы писали:

D>Здравствуйте, DimaSoft, Вы писали:


DS>>Ничего не пойму, что-то, наверное, торможу...:


D>см. здесь
Автор: Daenur
Дата: 07.02.05



Прошу прощение за тупость и несообразительность, но как использовать этот атрубут? Ведь не достаточно добавить атрибут перед свойством:

[DisplayName("Значение 1",0)]
public int FirstValue
{...}

?
Re[3]: Атрибут DisplayName
От: Daenur Россия  
Дата: 04.03.05 21:22
Оценка:
Здравствуйте, DimaSoft, Вы писали:

DS>Прошу прощение за тупость и несообразительность, но как использовать этот атрубут? Ведь не достаточно добавить атрибут перед свойством:


DS>[DisplayName("Значение 1",0)]

DS>public int FirstValue
DS>{...}

DS>?


Ну, почти достаточно.

Смотри, добавляешь этот код в проект, затем пишешь в нужном классе примерно так:

#region Свойства someObject

        [DisplayName("Здесь не место для рекламы", 1)]
        public int SomeProperty
        {
            get
            {...}
            set
            {...}
        }
...


а в классе формы, где отоборадаются данные так:

propertyGrid.SelectedObject = new PropertyDisplayNameWrapper(someObject);


У меня работает. Попробуй, может и у тебя запустится.

З.Ы. Не забудь в классе someObject сделать указать using для PropertyDisplayNameWrapper, если он в другом namespace'е.
(_2B || !_2B)
Re[4]: Атрибут DisplayName
От: DimaSoft  
Дата: 04.03.05 21:59
Оценка:
Уф-ф! Получилось!

Спасибо всем, кто пытался помочь и помог!

P.S.: Да-а-а, тяжко после Delphi с чем-то серьезным сталкиваться, Delphi со своими компонентами на все случаи жизни сильно притупляет мозги...
Re[5]: Атрибут DisplayName
От: Igor Trofimov  
Дата: 05.03.05 13:38
Оценка:
DS>P.S.: Да-а-а, тяжко после Delphi с чем-то серьезным сталкиваться, Delphi со своими компонентами на все случаи жизни сильно притупляет мозги...

Сталкиваться с чем-то серьезным после чего-то несерьезного всегда непросто. А Delphi тут не при чем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.