2014-01-30 152 views
0

我想使用组合框,下面的代码正在工作,但现在我想 添加到组合框标题默认值,即。有价值和像 项目当你打开它你可以选择改变它,我怎么能做到这一点?组合框默认值

<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]; 
} 
+1

什么是*组合框标题*? – Sheridan

+0

@ Sheridan-即你不需要打开组合框来查看第一个值,第一个值是在组合框中,当你打开它时,你会看到其他值... –

+1

我没有看到OnPropertyChanged(“SelectedItem1”);绑定是到SelectedItem(不是SelectedItem1)。 – Paparazzi

回答

1

我认为你从链接页面谈论ComboBox.Text Property ...:

获取或设置当前选定项的文本

这是不是您可以在其中显示消息的空白字段。它显示ComboBox.Items集合中当前选定项目的值。如果文本是而不是中的其中一项,则此TextBox'应'而不是显示该值。

但是,总是有解决方法。正确的做法是为ComboBox定义一个新的,其中包含TextBlock,该TextBlock覆盖在所选项目TextBox之上并在需要时隐藏。

有些人认为这是太多的工作了,所以你可以在这里的How to display default text “--Select Team --” in combo box on pageload in WPF?这里发现一些替代解决方案在StackOverflow。

+0

IsEditable诀窍:),谢谢! –

+0

请注意,因为*可能*使用户可以将默认消息添加到集合中作为项目......也许可以通过按Enter键。 – Sheridan

3

这很难理解你问,但我认为你只是在寻找ComboBox显示集合Items的第一个值。

我相信你可以用几种方法做到这一点。

首先你需要修复SelectedValue结合,以配合您的属性名称,并删除Text="Item"

<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}" 
      Name="comboBox1" Grid.Column="3" Grid.Row="2" /> 

从你的代码,你可以设置你有任何string项目SelectedValue1财产。不存在

SelectedValue1 = "item"; 

- 或 -

SelectedValue1 = Items.FirstOrDefault(); 

我用FirstOrDefault作为柜面这些项目安全:这样的例子。

- 或 -

SelectedValue1 = Items[0]; 

而且这里有几个更多的选择。但是我会试着限制答案的范围。

此外,您应该能够将ComboBox.SelectedIndex设置为0。

<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}" 
      Name="comboBox1" Grid.Column="3" Grid.Row="2" 
      SelectedIndex="0"/> 
0
  1. 列表项=新列表{ “项目”, “项目2”, “项目3”};

  2. 设置所选指数= 0,这将在组合框中项目源选择的第一要素

XAML:

<ComboBox ItemsSource="{Binding Items}" 
      Name="comboBox1" Grid.Column="3" Grid.Row="2" 
      SelectedIndex="0"/>