2014-01-30 184 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"/>