gpt4 book ai didi

C# WPF 组合框可编辑只允许列表中的选项

转载 作者:太空狗 更新时间:2023-10-29 21:32:29 25 4
gpt4 key购买 nike

我有一个组合框,里面有名字。我将框设置为可编辑,以便用户可以输入名称。我想要它,以便用户只能输入列表中已有的名称。当用户单击保存时,如果该框为空或不在列表中,我希望该框显示红色验证边框。有办法做到这一点吗?

        <ComboBox IsEditable="True"
Grid.Column="2"
Grid.Row="1"
Margin="5,3,0,0"
Text="{Binding Model.Number}"
ItemsSource="{Binding DList}"
SelectedItem="{Binding Model.Number}"
IsEnabled="{Binding EnableComboBox}"
VerticalAlignment="Top">
</ComboBox>

最佳答案

如果我没理解错的话,您希望用户能够通过键入来选择现有的列表项,而不是键入不在列表中的字符串。这可以通过以下方式完成:

<ComboBox IsEditable="False"></ComboBox>

这将允许用户开始输入字符串,但您会丢失用于输入的文本框。

另一种方法是允许用户通过设置 <ComboBox IsReadOnly="False" IsEditable="True"> 来输入他们想要的任何内容。并处理例如 LostFocus检查输入是否有效的事件。这是一个例子:

private void ComboBox_LostFocus(object sender, RoutedEventArgs e)
{
bool allowed = false;
foreach (ComboBoxItem it in comboBox.Items)
{
if (it.Content.ToString() == comboBox.Text)
{
allowed = true;
break;
}
}

if (!allowed)
{
MessageBox.Show("MISS!");
}

else
{
MessageBox.Show("HIT!");
}
}

出于某种原因,我无法快速设置边框颜色,但您可以从这里了解要点。也取决于你的 ComboBoxItem类型,您可能需要匹配 comboBox.Text到某个属性。

关于C# WPF 组合框可编辑只允许列表中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com