有奇怪的行为。
我正在创建某种聊天,在其范围内我有一个TextBox(包含新消息)和一个将此文本作为新消息发送到数据库的方法。
我以两种不同的方式调用sendMessage方法:
1.单击按钮上的(单击);
2.按TextBox上的enter(KeyDown)
现在奇怪的行为:点击事件保存文本,一切正常
输入密钥 - 发送两个中的一个:
或者为null(如果在当前的Controler会话中,则输入键是第一个,调用sendMessage的人);
或者上次保存的消息,由Click调用。
以下是代码snipets:
XAML
<Border Name="tbWriteMessage"
Grid.Column="0"
Grid.Row="2"
Background="White"
Width="{Binding Path=ActualWidth, ElementName=Ruler}"
BorderBrush="{StaticResource BlueBrush}"
BorderThickness="0,2,0,0">
<TextBox Style="{StaticResource EnterMessageWatermark}"
Text="{Binding Message}"
KeyDown="tbNewMessage_KeyDown"
x:Name="tbNewMessage"
MaxHeight="21"/>
</Border>
<Button Style="{StaticResource Button}"
Name="btnEnviar"
Click="btnEnviar_Click"
Grid.Column="1"
Grid.Row="2"
VerticalAlignment="Top"
Width="100"
Height="23"
Content="Enviar"
BorderThickness="2,2,0,0"/>
CS
private void sendMessage()
{
_viewModel.SaveNewMessage();
tbNewMessage.Clear();
}
private void btnEnviar_Click(object sender, RoutedEventArgs e)
{
sendMessage();
}
private void tbNewMessage_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
sendMessage();
}
}
对于指出解决这一障碍的最佳方法,我将不胜感激 提前谢谢!
答案 0 :(得分:0)
好的,我找到了一个不太糟糕的解决方法。
在按键输入我做:1。将焦点发送到不同的对象(在我的情况下,它是按钮,但它不是真的问题).2。调用sendMessage。
3.将焦点设置回TextBox。