powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / PropertyGrid: не возбуждается событие PropertyValueChanged
9 сообщений из 9, страница 1 из 1
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168047
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если изменяю значение в комбобоксе или тексбоксе в PropertyGrid, то получаю событие PropertyValueChanged,
в нем открываю кнопку Save.
А если редактирую объект с использованием своего

public class DataSourceEditor : UITypeEditor

то событие PropertyValueChanged не возбуждается.

Как самому его возбудить или как по-другому можно решить проблему?
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168074
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

Можно попробовать возбудить PropertyValueChanged как следует, унаследовавшись от PropertyGrid и создав метод:
Код: c#
1.
2.
3.
4.
public void ExcitePropertyValueChanged {
if (PropertyValueChanged != null) 
   PropertyValueChanged(sender, args);
}


Затем вызывать этот метод в те моменты, когда вам нужно чтобы PropertyValueChanged полностью возбудилось.
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168122
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmaticWinnipuh,

Можно попробовать возбудить PropertyValueChanged как следует, унаследовавшись от PropertyGrid и создав метод:
Код: c#
1.
2.
3.
4.
public void ExcitePropertyValueChanged {
if (PropertyValueChanged != null) 
   PropertyValueChanged(sender, args);
}


Затем вызывать этот метод в те моменты, когда вам нужно чтобы PropertyValueChanged полностью возбудилось.

вывестись то можно, но как я узнаю когда его вызывать, если сейчас проблема существует
только для тех объектов, для которых я вызываю свой редактор типа такого:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
public class DataProviderEditor : UITypeEditor
    {

        public override Object EditValue(
          ITypeDescriptorContext context,
          IServiceProvider provider,
          Object value)
        {
            if ((context != null) && (provider != null))
            {
                IWindowsFormsEditorService svc =
                  (IWindowsFormsEditorService)
                  provider.GetService(typeof(IWindowsFormsEditorService));

                if (svc != null)
                {
                    using (DatasourceForm frm =
                      new DatasourceForm((MyDatasource)value))
                    {
                        if (svc.ShowDialog(frm) == DialogResult.OK)
                        {
                            value = frm.m_DS;
                        }
                    }
                }
            }

            return base.EditValue(context, provider, value);
        }
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168156
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю и знать не хочу. Но подозреваю, что где-то тут:
Winnipuh
Код: c#
1.
value = frm.m_DS;


ЗЫ. Это я должен спрашивать когда вы его собираетесь вызывать.
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168177
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmaticНе знаю и знать не хочу. Но подозреваю, что где-то тут:
Winnipuh
Код: c#
1.
value = frm.m_DS;


ЗЫ. Это я должен спрашивать когда вы его собираетесь вызывать.

это внутренности редактора, он не знает о вызвавшем propertyGrid ничего.
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168258
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhenigmaticНе знаю и знать не хочу. Но подозреваю, что где-то тут:
пропущено...

ЗЫ. Это я должен спрашивать когда вы его собираетесь вызывать.

это внутренности редактора, он не знает о вызвавшем propertyGrid ничего.
Ну так передайте ему ссылку на PropertyGrid. И так как это кастомный эдитор для PropertyGrid'a он скорее всего имеет что-нибудь вроде Parent, через которое можно достучаться до PropertyGrid.

И вообще, изначальный вопрос был "Как самому его поднять PropertyValueChanged", а не "когда мне его поднимать?" или "как именно мне работать с PropertyGrid с назначенным кастомным эдитором?".
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168347
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так и + подписаться на событие объекта, который передается в propertygrid

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class BrowsedObject
{
    public event EventHandler PropertyValueChanged;

    private void OnPropertyValueChanged(object sender, EventArgs e)
    {
        EventHandler eh = PropertyValueChanged;
        if (eh != null)
            eh(sender, e);
    }

    private string someProperty;
    public new string SomeProperty
    {
        get { return someProperty; }
        set
        {
            someProperty = value;
            OnPropertyValueChanged(this, EventArgs.Empty);
        }
    }
}
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38168424
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,
событие возбудится само если вы подставите другой инстанс(копию) редактированного в эдитере объекта
...
Рейтинг: 0 / 0
PropertyGrid: не возбуждается событие PropertyValueChanged
    #38318515
a.kuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделал так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public class DataProviderEditor : UITypeEditor
    {

        public override Object EditValue(...)
        {
...................
            return nothing;
        }



+ в редактируемом объекте - провека на nothing

правда, теперь событие возбуждается в любом случае, даже если вышел по Esc
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / PropertyGrid: не возбуждается событие PropertyValueChanged
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]