Привязки WPF для настроек читаются перед выполнением - PullRequest
0 голосов
/ 16 августа 2011

У меня есть приложение, в котором привязки работают почти так, как должны, есть только одна проблема:

Некоторые элементы графического интерфейса обновляют базовый тип данных «при выходе», то есть при фокусировке на чем-то другом.Однако это не происходит, когда я нажимаю «выполнить» или «сохранить» (сохранение настроек).Поэтому, если последний заданный параметр был текстовым полем, и пользователь не щелкал в другом месте, обновленное значение параметра не включается в сохранение выполнения / параметров.

  1. Есть ли способ сделатьэто вручную при выполнении / сохранении?
  2. Почему мой щелчок по выполнению / сохранению не работает как изменение фокуса?Может быть, это так, но не происходит до тех пор, пока не будет запущено событие для кнопки?

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Это можно использовать для явного обновления привязки для конкретного элемента текстового поля или выделенного элемента текстового поля в вашем методе execute / save и по-прежнему использовать LostFocus для свойства UpdateSourceTrigger:

public static void UpdateBinding()
{
    UpdateBinding(Keyboard.FocusedElement as TextBox);
}

public static void UpdateBinding(TextBox element)
{
    if (element != null) 
    {
        var binding = element.GetBindingExpression(TextBox.TextProperty);
        if (binding != null) 
        {
            binding.UpdateSource();
        }
    }
}
0 голосов
/ 16 августа 2011

Попробуйте использовать UpdateSourceTrigger="PropertyChanged" для привязки вашего текстового поля

РЕДАКТИРОВАТЬ

или использовать UpdateSourceTrigger="Explicit" и вызывать метод обновления в привязках при обработке нажатия кнопки

...