2013-08-05 132 views
2

只是一個簡單的問題給大家。WPF Combobox問題

我有兩個組合框,其中一個具有硬編碼的數據:

<ComboBox> 
    <ComboBoxItem/> 
</ComboBox> 

,當我嘗試使用一個case語句上的SelectionChanged我從Convert.ToString(cboForm.SelectedValue): "System.Windows.Controls.ComboBoxItem: Directional Bore"得到的值。

現在同樣的形式對我有,我有comboboc.items.add()填充數據的另一個組合框和組合框的值後的SelectionChanged是實際文本值。

有什麼我可以做的沒有"System.Windows.Controls.ComboBoxItem: "在選定的價值?

case語句:

string caseSwitch = cboForm.SelectedValue.ToString(); 
switch (caseSwitch) 
{ 
    case "System.Windows.Controls.ComboBoxItem: Directional Bore": 
    { 
     ReportClass.DirBoreReport("","",""); 
     cboForm.SelectedIndex = -1; 
     //MainAccess.Mw.SpecificForm = false; 
     //MainAccess.Mw.frmPage.Height = 4400; 
     //MainAccess.Mw.HoldPage = new Uri("DirectionalBore_Combined.xaml", UriKind.Relative); 
     //if (NavigationService != null) NavigationService.Source = MainAccess.Mw.HoldPage; 
     //MainAccess.Mw.SectionBar_DirectionalBore.Visibility = Visibility.Visible; 
     //MainAccess.Mw.scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible; 
     //MainAccess.Mw.lblForm.Content = "DIRECTIONAL BORE"; 
     //MainAccess.Mw.Sbar = MainAccess.Mw.SectionBar_DirectionalBore; 
     break; 
    } 
} 

的XAML:

<ComboBox x:Name="cboForm" TabIndex="3" HorizontalAlignment="Left" Margin="746,618,0,0" VerticalAlignment="Top" Width="630" FontSize="48" FontWeight="Bold" Height="74" SelectionChanged="cboForm_SelectionChanged" > 
    <ComboBoxItem Content="Directional Bore" HorizontalAlignment="Left" /> 
    <ComboBoxItem Content="Drain Tile Break" HorizontalAlignment="Left"/> 
    <ComboBoxItem Content="Fiber Installation" HorizontalAlignment="Left"/> 
</ComboBox> 

謝謝!

+0

您應該重寫您的對象ToString()。 – Sonhja

+0

@Sonhja試過,沒有運氣,同樣的事情一直在發生。 – Herrozerro

+0

可以顯示完整的'switch case statement' – MethodMan

回答

5

首先將SelectedItem轉換爲ComboBoxItem,然後ComboBoxItem.Content將具有字符串值。

 ComboBoxItem item = this.cboForm.SelectedItem as ComboBoxItem; 
     if (item != null) 
     { 
      MessageBox.Show(item.Content.ToString()); 
     } 
+0

謝謝!工作! – Herrozerro

+0

只是一個簡單的問題,當組合框從另一個來源填充時,如何在不需要轉換的情況下工作? – Herrozerro

+0

當你使用'ComboBoxItem'時,ComboBox的ItemSource實際上是一個List ,但是當你從後面的代碼中填充一個List 給ItemsSource時,因此在第二種情況下不需要轉換。 –