wpf 中如果获取ComboBox选中的值,请高手指教

如风CSharp 2014-02-28 03:49:20
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ComboBox.SelectedItem != null)
{
chart.Series.Clear();


string item = ComboBox.SelectedItem.ToString();
double val = Convert.ToDouble(item);

问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2
并且还可以输入 其他数字
Axis yaxis = new Axis();
yaxis.AxisMaximum = 200 * val;
yaxis.AxisMinimum = -200 * val;
}
else
return;
}

...全文
3963 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lulianqi 2014-09-24
  • 打赏
  • 举报
回复
引用 11 楼 woaishenmei 的回复:
我再补充个问题:当我运行的程序时 ,我想要得到combobox中我输入的任意值,而不只是我预先设定的,这个该如何编写
 TextBoxEditNowName.Width = ComboBox_KeyMapList.Width;
            TextBoxEditNowName.Height = ComboBox_KeyMapList.Height;
            TextBoxEditNowName.Margin = ComboBox_KeyMapList.Margin;
            TextBoxEditNowName.VerticalAlignment = VerticalAlignment.Top;
            TextBoxEditNowName.HorizontalAlignment = HorizontalAlignment.Left;
定义一个这样的TextBox在需要编辑的时候.Add(TextBoxEditNowName);编辑完了remove就行了
lulianqi 2014-09-24
  • 打赏
  • 举报
回复
刚刚也遇到这样的问题了。 因为在WPF里面selectitem 居然是obj类型的。 绑定的什么类型的数据再强制转换回去就行了。然后就跟在数据源里取值一样了。
灬浪子灬 2014-02-28
  • 打赏
  • 举报
回复
引用 11 楼 woaishenmei 的回复:
我再补充个问题:当我运行的程序时 ,我想要得到combobox中我输入的任意值,而不只是我预先设定的,这个该如何编写
自己重写控件吧!想实现什么样的效果就实现什么样的效果
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
我再补充个问题:当我运行的程序时 ,我想要得到combobox中我输入的任意值,而不只是我预先设定的,这个该如何编写
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
引用 8 楼 KumaPower 的回复:
[quote=引用 6 楼 woaishenmei 的回复:] 你的 MessageBox.Show(item.Content.ToString()); 这个运行没问题,但是我希望得到这个选中赋值给另一个变量如 :a; 而不是显示出来
item.Content.ToString()
这个不就是你要的值了吗。。。[/quote] 我再补充个问题:当我运行的程序时 ,我想要得到combobox中我输入的任意值,而不只是我预先设定的,这个该如何编写
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
引用 7 楼 rui_china 的回复:
[quote=引用 楼主 woaishenmei 的回复:] private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
引用 楼主 woaishenmei 的回复:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
引用 楼主 woaishenmei 的回复:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBoxItem item = ComboBox.SelectedItem as ComboBoxItem; string str = item.Content.ToString(); } 这样就OK了[/quote] 还需要转换类型 我已解决
Bonjour-你好 2014-02-28
  • 打赏
  • 举报
回复
引用 6 楼 woaishenmei 的回复:
你的 MessageBox.Show(item.Content.ToString()); 这个运行没问题,但是我希望得到这个选中赋值给另一个变量如 :a; 而不是显示出来
item.Content.ToString()
这个不就是你要的值了吗。。。
灬浪子灬 2014-02-28
  • 打赏
  • 举报
回复
引用 楼主 woaishenmei 的回复:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
引用 楼主 woaishenmei 的回复:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
引用 楼主 woaishenmei 的回复:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ComboBox.SelectedItem != null) { chart.Series.Clear(); string item = ComboBox.SelectedItem.ToString(); double val = Convert.ToDouble(item); 问题就出在这两句程序上,我要得到选中的值;combobox中已经设置是数字0,1 ,0.1 ,1 , 2 并且还可以输入 其他数字 Axis yaxis = new Axis(); yaxis.AxisMaximum = 200 * val; yaxis.AxisMinimum = -200 * val; } else return; }
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBoxItem item = ComboBox.SelectedItem as ComboBoxItem; string str = item.Content.ToString(); } 这样就OK了
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
引用 5 楼 KumaPower 的回复:
[quote=引用 4 楼 woaishenmei 的回复:] [quote=引用 3 楼 carolinehan1984 的回复:] 你用F10调试看看ComboBox.SelectedItem的值,假设你的Combobox的Itemsource是List<double>那么ComboBox.SelectedItem的值就应该是Double,如果不是,那应该是绑定那块有问题
我并没有设置Combobox的Itemsource 属性 是这样的 <ComboBox Text="放大倍数" Name="ComboBox" IsEditable="True" HorizontalAlignment="Left" Height="30" VerticalAlignment="Top" Width="124" SelectionChanged="ComboBox_SelectionChanged" Margin="383,10,0,0"> <ComboBox.Items> <ComboBoxItem>0.1</ComboBoxItem> <ComboBoxItem>0.2</ComboBoxItem> <ComboBoxItem>0.5</ComboBoxItem> <ComboBoxItem>1.0</ComboBoxItem> </ComboBox.Items> </ComboBox>[/quote]
ComboBoxItem item = ComboBox.SelectedItem as ComboBoxItem;
                if (item != null) {
                    MessageBox.Show(item.Content.ToString());
                }
[/quote] 你的 MessageBox.Show(item.Content.ToString()); 这个运行没问题,但是我希望得到这个选中赋值给另一个变量如 :a; 而不是显示出来
Bonjour-你好 2014-02-28
  • 打赏
  • 举报
回复
引用 4 楼 woaishenmei 的回复:
[quote=引用 3 楼 carolinehan1984 的回复:] 你用F10调试看看ComboBox.SelectedItem的值,假设你的Combobox的Itemsource是List<double>那么ComboBox.SelectedItem的值就应该是Double,如果不是,那应该是绑定那块有问题
我并没有设置Combobox的Itemsource 属性 是这样的 <ComboBox Text="放大倍数" Name="ComboBox" IsEditable="True" HorizontalAlignment="Left" Height="30" VerticalAlignment="Top" Width="124" SelectionChanged="ComboBox_SelectionChanged" Margin="383,10,0,0"> <ComboBox.Items> <ComboBoxItem>0.1</ComboBoxItem> <ComboBoxItem>0.2</ComboBoxItem> <ComboBoxItem>0.5</ComboBoxItem> <ComboBoxItem>1.0</ComboBoxItem> </ComboBox.Items> </ComboBox>[/quote]
ComboBoxItem item = ComboBox.SelectedItem as ComboBoxItem;
                if (item != null) {
                    MessageBox.Show(item.Content.ToString());
                }
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
引用 3 楼 carolinehan1984 的回复:
你用F10调试看看ComboBox.SelectedItem的值,假设你的Combobox的Itemsource是List<double>那么ComboBox.SelectedItem的值就应该是Double,如果不是,那应该是绑定那块有问题
我并没有设置Combobox的Itemsource 属性 是这样的 <ComboBox Text="放大倍数" Name="ComboBox" IsEditable="True" HorizontalAlignment="Left" Height="30" VerticalAlignment="Top" Width="124" SelectionChanged="ComboBox_SelectionChanged" Margin="383,10,0,0"> <ComboBox.Items> <ComboBoxItem>0.1</ComboBoxItem> <ComboBoxItem>0.2</ComboBoxItem> <ComboBoxItem>0.5</ComboBoxItem> <ComboBoxItem>1.0</ComboBoxItem> </ComboBox.Items> </ComboBox>
carolinehan1984 2014-02-28
  • 打赏
  • 举报
回复
你用F10调试看看ComboBox.SelectedItem的值,假设你的Combobox的Itemsource是List<double>那么ComboBox.SelectedItem的值就应该是Double,如果不是,那应该是绑定那块有问题
如风CSharp 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 KumaPower 的回复:
我猜测你ComboBox绑定的类型应该不是String的集合类那么简单吧,如果你要“取”的值跟ComboBox当前“显示”的值一样,可以试试ComboBox.Text。
改成 string item = ComboBox.Text; 还是不行 ,运行不了
Bonjour-你好 2014-02-28
  • 打赏
  • 举报
回复
我猜测你ComboBox绑定的类型应该不是String的集合类那么简单吧,如果你要“取”的值跟ComboBox当前“显示”的值一样,可以试试ComboBox.Text。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧