C# Combobox和SelectionChanged问题

C# Combobox和SelectionChanged问题,c#,wpf,combobox,C#,Wpf,Combobox,我试图在我的组合框中检查一个值,但它失败了,我的值从未匹配过,我有以下警告: 可能的非预期参考 比较;要进行价值比较, 将左手侧铸造为铅字 “字符串” 谢谢。您必须添加的SelectedValue的警告。toString()SelectedValue的类型是对象,因此,即使它与值匹配,相等操作也会返回false,因此您必须将字符串与字符串进行比较,如下所示: if (((ComboBox)sender).SelectedValue.ToString() == "Floyd-Warshal

我试图在我的组合框中检查一个值,但它失败了,我的值从未匹配过,我有以下警告:

可能的非预期参考 比较;要进行价值比较, 将左手侧铸造为铅字 “字符串”


谢谢。

您必须添加的SelectedValue的警告。toString()

SelectedValue的类型是
对象
,因此,即使它与值匹配,相等操作也会返回false,因此您必须将字符串与字符串进行比较,如下所示:

    if (((ComboBox)sender).SelectedValue.ToString() == "Floyd-Warshall")

有多种修复方法,一种是转换为字符串,另一种是调用SelectedValue上的ToString

正如您所说的,其他一些建议的答案不起作用,您确定组合框中的项目实际上是一个字符串吗

例如,这将适用于建议的修复:

<Window x:Class="ExerciseOne.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" xmlns:extern="clr-namespace:System;assembly=mscorlib">
    <Grid>
    <ComboBox SelectionChanged="ComboBox_SelectionChanged">
        <ComboBox.Items>
                <extern:String>Hello</extern:String>
                <extern:String>Floyd-Warshall</extern:String>
            </ComboBox.Items>
    </ComboBox>
    </Grid>
</Window>

效果很好。我没有用绳子。谢谢。@ojsim-我觉得你不是!
<Window x:Class="ExerciseOne.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" xmlns:extern="clr-namespace:System;assembly=mscorlib">
    <Grid>
    <ComboBox SelectionChanged="ComboBox_SelectionChanged">
        <ComboBox.Items>
                <extern:String>Hello</extern:String>
                <extern:String>Floyd-Warshall</extern:String>
            </ComboBox.Items>
    </ComboBox>
    </Grid>
</Window>
<Window x:Class="ExerciseOne.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" xmlns:extern="clr-namespace:System;assembly=mscorlib">
    <Grid>
    <ComboBox SelectionChanged="ComboBox_SelectionChanged">
        <ComboBox.Items>
                <ComboBoxItem>Hello</ComboBoxItem>
                <ComboBoxItem>Floyd-Warshall</ComboBoxItem>
            </ComboBox.Items>
    </ComboBox>
    </Grid>
</Window>
   MessageBox.Show(((ComboBox)sender).SelectedValue.GetType().ToString());