我想使用组合框,以下代码正在运行,但现在我想 添加到组合框标题默认值,即。有价值和喜欢 项目,当您打开它时,您可以选择更改它,我该怎么做?
<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem}"
Name="comboBox1" Text="Item" Grid.Column="3" Grid.Row="2" />
代码
private List<String> _items;
private String _selectedItem;
private String _selectedBusinessItem;
public List<String> Items
{
get { return _items; }
set
{
_items = value;
OnPropertyChanged("Items");
}
}
public String SelectedItem1
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged("Items");
}
}
private void InitCombo()
{
Items = new List<string> { "item", "Item2", "Item3" };
SelectedItem1 = Items[0];
}
答案 0 :(得分:3)
很难理解你在问,但我认为你只是在寻找ComboBox
来显示Items
集合中的第一个值。
我相信你可以通过几种方式做到这一点。
首先,您需要修复SelectedValue
绑定以匹配您的媒体资源名称,然后删除Text="Item"
:
<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}"
Name="comboBox1" Grid.Column="3" Grid.Row="2" />
您可以在代码中将SelectedValue1
属性设置为string
项中的任何一项。例如:
SelectedValue1 = "item";
-OR -
SelectedValue1 = Items.FirstOrDefault();
我使用FirstOrDefault
作为安全措施,这些项目不存在。
-OR -
SelectedValue1 = Items[0];
此处还有其他几种选择。但我会尝试限制答案的范围。
此外,您应该能够将ComboBox.SelectedIndex
设置为0。
<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}"
Name="comboBox1" Grid.Column="3" Grid.Row="2"
SelectedIndex="0"/>
答案 1 :(得分:1)
我认为您正在谈论链接页面中的ComboBox.Text
Property ...:
获取或设置当前所选项目的文本
这是不一个可以显示消息的空闲字段。它显示ComboBox.Items
集合中当前所选项目的值。如果其中一个项目中的文字不,那么此TextBox
'应该'不显示该值。
但是,总会有解决方法。正确的方法是为包含ControlTemplate
的{{1}}定义新的ComboBox
,TextBlock
覆盖在所选项目TextBox
之上,并在需要时隐藏
有些人认为这样做太多了,所以你可以在StackOverflow上的How to display default text “--Select Team --” in combo box on pageload in WPF?帖子中找到一些替代解决方案。
答案 2 :(得分:0)
列出项目=新列表{“项目”,“项目2”,“项目3”};
设置Selected Index = 0,它将选择组合框中的第一个元素Item-source
<ComboBox ItemsSource="{Binding Items}"
Name="comboBox1" Grid.Column="3" Grid.Row="2"
SelectedIndex="0"/>