如何设置" SELECT"选项作为wpf comboBox中的第一个选项

时间:2015-07-27 08:22:54

标签: c# .net wpf combobox wpf-controls

我正在使用Enum Logic填充comboBox。正确填充了comboBox。但我想设置" - SELECT - "作为第一选择。

怎么办?

6 个答案:

答案 0 :(得分:0)

把它放在你的xaml组合框中

SelectedIndex="0"

答案 1 :(得分:0)

只需修改列表,然后再将其发送到视图:

 public List<string> YourList 
    {
        get
        {
             if (_list[0] != "--Select--")
                _list = _list.Insert(0, "--Select--");
             return _list;
        }
    }

答案 2 :(得分:0)

尝试设置空值

<ComboBox SelectedItem="{Binding Item}" ItemsSource="{Binding Items}">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock x:Name="displayText" Text="{Binding}" />
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding}" Value="{x:Null}">
                        <Setter TargetName="displayText" Property="Text" Value="--Select--" />
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

和VM:

    public ObservableCollection<string> Items
    {
        get
        {
            return new ObservableCollection<string>
            {
                null,"1","2","3"
            };

        }
    }

    public string Item { get; set; }

答案 3 :(得分:0)

可能最简单的方法是使ComboBox可编辑,以便您可以设置自定义文本和只读,以便只能选择项目:

<ComboBox IsEditable="True" IsReadOnly="True" Text="--SELECT--" />

请注意,这会改变控件的外观,因此如果这对您来说是个问题,则必须使用更复杂的解决方案。

答案 4 :(得分:0)

如果您的类具有要在ComboBox中显示的属性,请查看以下方法:

为您的班级设置名称空间:

xmlns:models="clr-namespace:Company.ProjectName.Models;assembly=Company.ProjectName.Models"

然后在你的ComboBox中添加你的类的新项目:

<ComboBox DisplayMemberPath="Name" SelectedItem="{Binding BindingProperty, Mode=TwoWay}" >
<ComboBox.ItemsSource>
    <CompositeCollection>
        <models:CustomClass Name="--SELECT--" ID="0"/>
         <!--<ComboBoxItem Background="LightGray" IsHitTestVisible="False"  Height="1" Margin="7,0,7,0" IsEnabled="False" Focusable="False"/> !-->
        <CollectionContainer Collection="{Binding Source={StaticResource ObservableCollection}}" />
    </CompositeCollection>
</ComboBox.ItemsSource>

答案 5 :(得分:0)

从数据库中检索数据后,可以将值( - SELECT - )添加到数据表中,并将所选索引设置为0。

DataRow row = dt.NewRow();
row["DATA"] = "--SELECT--";
dt.Rows.InsertAt(row, 0);

绑定combobox1.SelectedIndex = 0;

之后