我是c#
初学者,在Visual Studio-2010中使用 Silver Light-5 进行网页开发。我有运行我的代码的GUI,它有由xaml创建的GUI,按钮点击在c#中处理。
现在我要做的是:(我有两个问题)
(1)第一个是:
我正在尝试创建一个GUI,其中我使用的组合框将包含这样的选项(请参阅此链接)http://prntscr.com/36l58s在此链接中,我选择5个给定datatypes
中的一种数据类型(这是字节,为sbyte,short,int和长)。之后我想将这个数据类型分配给c#代码中的variable
,如下所示:(假设我选择"短"在那里)
comboBox1.Items.Add("short");
var itemType = comboBox1.SelectedItem.GetType(); //This "itemType" contains "short" now
itemType variable = 10; // **THIS LINE GIVES ERROR**
如何分配这个" vraibale" combo box
中选定的dataType?
(2)第二个是: 当我选择"短" (或任何数据类型)然后它再次重复在组合框中添加数据类型。例如,当我选择"短" (或任何)。我得到了这个http://prntscr.com/36l6om,如果我再次选择" long"我去了http://prntscr.com/36l75y
我要实现的xml代码是
<ComboBox Height="19" HorizontalAlignment="Left" Margin="25,209,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox1_SelectionChanged" Grid.ColumnSpan="3">
<ComboBoxItem />
<ComboBoxItem />
</ComboBox>
c#代码是:
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
comboBox1.Items.Add("byte");
comboBox1.Items.Add("sbyte");
comboBox1.Items.Add("short");
comboBox1.Items.Add("int");
comboBox1.Items.Add("long");
var itemType = comboBox1.SelectedItem.GetType();
}
感谢您的帮助。
答案 0 :(得分:1)
首先,
comboBox1.SelectedItem.GetType();
将为您提供Type
string
你可以选择一个转换案例
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch( comboBox1.SelectedItem as string )
{
case "byte"://Create a variable of byte and use it.
break;
case "sbyte"://Create a variable of sbyte and use it.
break;
case "short"://Create a variable of short and use it.
break;
case "int"://Create a variable of int and use it.
break;
case "long"://Create a variable of long and use it.
default:
break;
}
}
其次,将Items
添加到combobox1
或Initialize
方法中的Constructor
,而不是SelectionChanged事件,这会导致重复添加。