это код XAML для редактируемого поля со списком для ввода / выбора IP.
<ComboBox Name="ComboBoxServerIp"
Grid.Row="2" Grid.Column="1"
ItemsSource="{Binding ServerList}"
Text="{Binding SelectedServer, UpdateSourceTrigger=LostFocus, Mode=TwoWay}"
IsEditable="True" IsReadOnly="False">
<ComboBox.InputBindings>
<KeyBinding Command="{Binding UpdateServerIpCommand}" Key="Enter"
CommandParameter="{Binding ElementName=ComboBoxServerIp ,Path=Text}"/>
</ComboBox.InputBindings>
</ComboBox>
как только пользователь завершит ввод IP, он запускает поток, который занимает около 10 секунд.поэтому я использовал комбинацию lostfocus и нажатой клавиши ввода для запуска обновления.
это работает нормально, за исключением случая использования, когда пользователь нажимает кнопку без первой потери фокуса или нажатиявойти.в этом случае обновление SelecterServer не запускается ПЕРЕД ВЫПОЛНЕНИЕМ КОМАНДЫ КНОПКИ .команда читает старое значение SelectedServer.не то, что в пользовательском интерфейсе
tl; dr - событие потерянного фокуса не вызывается в текстовом поле при нажатии кнопки в пользовательском интерфейсе.Как я могу заставить обновление со стороны пользовательского интерфейса?