我正在使用Enum Logic填充comboBox。正确填充了comboBox。但我想设置" - SELECT - "作为第一选择。
怎么办?
答案 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;