是否可以在c#web应用程序中的组合框中选择数据类型

时间:2014-04-03 09:59:07

标签: c# silverlight web-applications combobox silverlight-5.0

我是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();   
        }

感谢您的帮助。

1 个答案:

答案 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添加到combobox1Initialize方法中的Constructor,而不是SelectionChanged事件,这会导致重复添加。