0
私のコードで見てください これはコンボボックスのlostfocusイベントを呼び出している間無限ループになります 私はデータベースからいくつかのデータを必要とし、ユーザーは入力オプションでデータのみフォームリストを選択できます。私が正しくあなたを得た場合は、ユーザーのエントリがない場合WPF Combobox lostfocusイベントは無限ループになります
mainwindow.xaml
<Grid>
<TextBox x:Name="txt1" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" Margin="112,10,0,0"/>
<ComboBox x:Name="cmb" GotFocus="cmbgotfocus" LostKeyboardFocus="cmblost" KeyDown="cmbkeydown" IsEditable="True" HorizontalAlignment="Left" VerticalAlignment="Top" Width="238" Margin="112,50,0,0" />
</Grid>
クラス
private void cmbkeydown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return || e.Key == Key.Escape)
{
cmb.IsDropDownOpen = false;
}
else
{
cmb.IsDropDownOpen = true;
}
}
private void cmblost(object sender, RoutedEventArgs e)
{
if (cmb.SelectedIndex < 0 && cmb.Text!="")
{
MessageBox.Show("Please select a valid data from list only", "Warning");
cmb.Focus();
}
}
デバッグツールで何が起こったのか見てみましたか? –
lostfocusハンドラのcmb.Focus()を呼び出すとよい考えではないかもしれません – vkluge