Не уверен, правильно ли я понимаю ваши потребности, но я думаю, что вы этого хотите:
XAML:
<Grid Width="50">
<ComboBox x:Name="cb" SelectedIndex="0" ItemsSource="{Binding MyObservableCollection}"/>
<TextBox x:Name="tb" Text="{Binding ElementName=cb,Path=SelectedItem}">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=tb, Path=IsFocused}" Value="true">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
DataContext:
private ObservableCollection<string> myObservableCollection = new ObservableCollection<string>{ "one", "two", "tree" };
public ObservableCollection<string> MyObservableCollection
{
get => this.myObservableCollection;
set => SetField(ref this.myObservableCollection, value);
}
Один из способов - следить за тем, какие клавиши в данный момент не работают.
Когда вы получаете событие keyPressed добавьте новый ключ в список; когда вы получаете событие keyReleased, удалите ключ из списка.
Затем в игровом цикле вы можете выполнять действия в зависимости от того, что находится в списке ключей.
Вообще говоря, то, что вы описываете, может быть достигнуто с помощью битовых масок .