【发布时间】:2017-02-05 05:48:19
【问题描述】:
我正在尝试获取在其处理程序的组合框中选择的值,以便我可以根据值的每次更改进行一些操作。但我无法将值转换为整数。当我尝试将其转换为字符串并在控制台上打印时,如果所选值为 100000,则打印为“System.Windows.Controls.ComboBoxItem: 100000”。
请在下面找到 XAML 和处理程序代码。
<ComboBox x:Name="Scale" HorizontalAlignment="Left" Margin="660,15,0,0" Grid.Row="1" VerticalAlignment="Top" Width="60" Height="26" SelectionChanged="Scale_SelectionChanged">
<ComboBoxItem Content="1" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="10" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="50" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="100" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="200" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="400" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="500" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="750" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="1000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="2000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="4000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="5000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="10000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="20000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="40000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="50000" HorizontalAlignment="Left" Width="60"/>
<ComboBoxItem Content="100000" HorizontalAlignment="Left" Width="60"/>
</ComboBox>
C#代码
private void Scale_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Console.WriteLine(Scale.SelectedValue.ToString());
}
【问题讨论】:
-
WPF = 绑定。不要像这样自己创建
ComboBoxItem。不要从 View 中获取值,而是直接从底层集合中获取值,那么您不需要任何强制转换。参见例如this answer,或this tutorial。