我有一个包含数字列表的WPF ComboBox。它还有一个自定义项,它可以变成一个可编辑的文本框,供用户输入自己的值。
在可编辑组合框中,如果我按下项目列表中的数字,它会跳转到该数字并从可编辑文本框中跳出。
示例: ComboBox包含项目“1”,“2”,“3”,“自定义”。 我单击“自定义”以输入我自己的值。我按3键输入“30”然后跳到第3项。
XAML
<ComboBox x:Name="comboBox1" HorizontalAlignment="Left" Margin="115,156,0,0" VerticalAlignment="Top" Width="53" Foreground="White">
<System:String>1</System:String>
<System:String>2</System:String>
<System:String>3</System:String>
<System:String>Custom</System:String>
</ComboBox>
我使用C#
使ComboBox从静态转为可编辑private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Custom ComboBox Editable
if ((string)comboBox1.SelectedItem == "Custom" | comboBox1.SelectedValue == null)
{
comboBox1.IsEditable = true;
}
// Other Items Disable Editable
if ((string)comboBox1.SelectedItem != "Custom" && comboBox1.SelectedValue != null)
{
comboBox1.IsEditable = false;
}
// Maintain Editable ComboBox while typing
if (comboBox1.IsEditable == true)
{
comboBox1.IsEditable = true;
// Clear Custom Text
comboBox1.Text = string.Empty;
}
}