2

只是给大家一个快速的问题。

我有两个组合框,其中一个具有硬编码的数据:

<ComboBox>
    <ComboBoxItem/>
</ComboBox>

当我尝试在 SelectionChanged 上使用 case 语句时,我得到了Convert.ToString(cboForm.SelectedValue): "System.Windows.Controls.ComboBoxItem: Directional Bore"一个值。

现在在同一个表单上,我有另一个组合框,其中包含要填充的数据,comboboc.items.add()并且在 SelectionChanged 之后该组合框的值是实际的文本值。

有什么我可以做的没有"System.Windows.Controls.ComboBoxItem: "在选定的值?

案例陈述:

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;
    }
}

xml:

<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>

谢谢!

4

1 回答 1

5

首先转换SelectedItemComboBoxItem,然后ComboBoxItem.Content将有字符串值。

        ComboBoxItem item = this.cboForm.SelectedItem as ComboBoxItem;
        if (item != null)
        {
            MessageBox.Show(item.Content.ToString());
        }
于 2013-08-05T12:33:28.267 回答