Приветствую!
У меня на форме есть текст бокс :
<TextBox TextWrapping="Wrap" Grid.Column="2" Grid.Row="2"
Text="{Binding TextToSend}"/>
и кнопка
<Button Content="SEND" Command="{Binding InsertMessage}"/>
Внутри вьюмодели есть свойство к которому текст привязан :
private string _texttosend { get; set; }
public string TextToSend
{
get
{
return _texttosend;
}
set
{
_texttosend = value;
NotifyPropertyChanged("TextToSend");
}
}
Команда InsertMessage
содержит проверку связанного свойства :
if (!string.IsNullOrWhiteSpace(_texttosend))
И если я нажимаю ПКМ мыши по Button то все работает как надо и текст из бокса попадает в связанное свойство. Однако, если я добавлю кнопке IsDefault="True"
то произойдет ошибка - а именно _texttosend == null
. Не могу понять почему так. Разница только в том, что первый раз я нажимаю на кнопку мышью а во втором случае вызываю команду через ENTER. В чем может быть причина ?
Дело в том, что по умолчанию обновление источника привязки происходит по событию LostFocus
, а при нажатии клавиши Enter фокус не покидает TextBox, поэтому источник привязки не обновляется.
Чтобы добиться нужного эффекта можно включить обновление источника привязки по событию TextChanged
, для этого установите свойство UpdateSourceTrigger
в значение PropertyChanged
:
Text="{Binding TextToSend, UpdateSourceTrigger=PropertyChanged}"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть файл БД с расширением SDBКак его подключить в Visual Studio и создать из не модель, для последующей полноценной работы через Linq
Этот вопрос исходит из этого вопросаМне не нравится что настройки, которые устраняют "замыленность" формы содержаться в app
Написал библиотеку классов на с#(ну как написал, скопировал по гайдику)Подключил через "Add/Reference" к другому проекту, в котором требовалась данная...
Нашёл на стеке пример как можно конвертировать string в uintКак я понял прямого способа нет