Я использовал комбинацию из двух флеш-фрагментов. Первый добавляет префикс к форме , а затем вы проверяете префикс с 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
Забавно, что после дня поиска без везения и, наконец, отправил мой вопрос, вдруг я нашел еще один поток, который говорит ту же самую проблему с ответом -> 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 для события с измененным свойством. Но в любом случае это делает трюк.