在下拉菜单中替换字符串

时间:2013-06-12 10:25:50

标签: c# wpf pixelsense

因此,当我尝试在用户选择其他项目时加载其他字符串时,我的代码为:

void ModeSelectorSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var data1 = new string[]
    {
        "January 2012",
        "February 2012",
        "March 2012",
        "April 2012",
    };

    var data2 = new string[]
    {
         "Married",
         "Divorced",
         "Buy new house",
         "Get promotion",
    };

    if (_Menu2.SelectedIndex == 2) 
    {
        _Menu3.ItemsSource = data1;     
    }

    else 

    if (_Menu2.SelectedIndex == 3)
    {

        _Menu3.ItemsSource = data2;
    }
}

当我只使用1个字符串时,它工作正常,但是当我尝试在同一个下拉菜单中加载2个不同的字符串时,它会关闭,这意味着它根本不显示任何字符串数据。我做错了什么?

2 个答案:

答案 0 :(得分:1)

对于ASP.NET WebForms DropDownList,请遵循以下代码片段:

_Menu3.DataSource = someData;
_Menu3.DataBind();

也许最好在客户端移动此逻辑并使用javascript。

答案 1 :(得分:0)

试试这段代码。它对我有用,AutoPostBack对于_Menu2也是如此。

protected void ModeSelectorSelectionChanged(object sender, EventArgs e)
{
    var data1 = new string[]
                                    {
                                    "January 2012",
                                    "February 2012",
                                    "March 2012",
                                    "April 2012",
                                    };

    var data2 = new string[]
                                    {
                                    "Married",
                                    "Divorced",
                                    "Buy new house",
                                    "Get promotion",
                                    };
    if (_Menu2.SelectedIndex == 2)
    {
        _Menu3.DataSource = data1;
        _Menu3.DataBind();

    }
    else if (_Menu2.SelectedIndex == 3)
    {

        _Menu3.DataSource = data2;
        _Menu3.DataBind();
    }    
}