Расширенное свойство C # NestedClass для обновления / недействительности элемента управления в режиме разработки

Я использовал комбинацию из двух флеш-фрагментов. Первый добавляет префикс к форме , а затем вы проверяете префикс с validate_on_submit (). Я также использую шаблон Louis Roché для определения того, какие кнопки выталкиваются в форме .

Чтобы процитировать Dan Jacob:

Пример:

form1 = FormA(prefix="form1")
form2 = FormB(prefix="form2")
form3 = FormC(prefix="form3")

Затем добавьте скрытое поле (или просто проверьте поле отправки):

if form1.validate_on_submit() and form1.submit.data:

Чтобы процитировать Louis Roché's:

У меня есть в моем шаблоне:



И чтобы выяснить, какая кнопка была передана на стороне сервера, у меня есть в моих представлениях. py файл:

if request.form['btn'] == 'Save':
    something0
else:
    something1

1
задан LarsTech 13 July 2018 в 17:08
поделиться

1 ответ

Забавно, что после дня поиска без везения и, наконец, отправил мой вопрос, вдруг я нашел еще один поток, который говорит ту же самую проблему с ответом -> Thread с ответом

Чтобы повторить, очевидно, INotifyPropertyChanged по-прежнему является ответом на мою проблему. Разница в том, что я раньше подписывался на событие в конструкторе ContainerClass. Что-то вроде:

public ContainerClass()
{
    NestedClassInstance.PropertyChanged += delegate { this.Invalidate(); };
}

Хотя очевидно, что нужно сделать, это подписаться или повторно подписаться на это событие в телережиме NestedClass. Что-то вроде:

public class ContainerClass : Control
{
    private NestedClass _nestedClassInstance = new NestedClassInstance();
    public NestedClass NestedClassInstance
    {
        get => _nestedClassInstance;
        set
        {
            if (_nestedClassInstance != null)
                _nestedClassInstance.PropertyChanged -= delegate { this.Invalidate(); };
            _nestedClassInstance = value;
            _nestedClassINstance.PropertyChanged += delegate { this.Invalidate(); };
        }
    }
}

Там у вас есть. Конец другого маршрута кодирования.

EDIT: На самом деле я все еще думаю, является ли это фактическим решением или нет, поскольку, если мы имеем в виду метаданные класса Font, он не обязательно использует INotifyProperty или любой другой вид EventHandler для события с измененным свойством. Но в любом случае это делает трюк.

0
ответ дан Innocentio Aloysius Loe 17 August 2018 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: