我正在使用.NET framework 4.0来构建我的应用程序。
我有一个组合框,我想在其中关闭combobox的建议附加模式。相反,我想要建议模式。
在许多问题中,用户要求关闭自动完成功能,并且我得到了相同的答案。即将IsTextSearchEnabled设置为False。
当IsTextSearchEnabled = True
时
当IsTextSearchEnabled = False时
我想要的是:
当用户在Combobox上按Enter时,我希望将项目附加到组合框的文本框中。
这个东西在WPF中是否可行?
答案 0 :(得分:3)
像这里承诺的是演示。如你所见,我做了我在评论中解释的内容。我听了文字改变了事件。
检查出来:
<Grid>
<local:MyComboBox x:Name="comboBox" IsEditable="True"
VerticalAlignment="Center"
IsTextSearchEnabled="True">
<ComboBoxItem>hello</ComboBoxItem>
<ComboBoxItem>world</ComboBoxItem>
<ComboBoxItem>123</ComboBoxItem>
</local:MyComboBox>
</Grid>
public class MyComboBox : ComboBox
{
private string myValue;
private bool needsUpdate;
public override void OnApplyTemplate()
{
TextBox tbx = this.GetTemplateChild("PART_EditableTextBox") as TextBox;
tbx.PreviewKeyDown += (o, e) =>
{
this.needsUpdate = true;
};
tbx.TextChanged += (o, e) =>
{
if (needsUpdate)
{
myValue = tbx.Text;
this.needsUpdate = false;
}
else
{
tbx.Text = myValue;
}
};
base.OnApplyTemplate();
}
}