首页 > 解决方案 > 如何更改变量中选定的组合框项目

问题描述

我正忙着在 UWP 中做一个简单的登录系统,让用户选择一所学校进行登录。不同的学校列在下拉列表中。现在的问题是,它保存了启动时选择的值。该值被保存到一个变量中。

试图通过索引查找值。

    public List<User> GetUsers(string connectionString)
    {
        string campus_selected = ((ComboBoxItem)campuscb.SelectedItem).Content.ToString();

        if (campus_selected=="NewYork")
        {
            const string GetUserQuery = "SELECT username,password,TeacherID from NewYork.UserLogin";

            var users = new ObservableCollection<User>();
            try
            {

                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        using (SqlCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = GetUserQuery;
                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    var user = new User();
                                    user.username = reader.GetString(0);
                                    user.password = reader.GetString(1);

                                    users.Add(user);
                                }
                            }
                        }
                    }
                }
                return users.ToList();
            }
            catch (Exception eSql)
            {
                Debug.WriteLine("Exception: " + eSql.Message);
            }
            return null;
        }

        else if (campus_selected == "LA")
        {
            const string GetUserQuery = "SELECT username,password,TeacherID from LA.UserLogin";

            var users = new ObservableCollection<User>();
            try
            {

                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        using (SqlCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = GetUserQuery;
                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    var user = new User();
                                    user.username = reader.GetString(0);
                                    user.password = reader.GetString(1);
                                    //user.FacilitatorsID = reader.GetString(2);
                                    users.Add(user);
                                }
                            }
                        }
                    }
                }
                return users.ToList();
            }
            catch (Exception eSql)
            {
                Debug.WriteLine("Exception: " + eSql.Message);
            }
            return null;
        }
        return null;

    }

当用户更改下拉列表时,应该走相应的 if 语句。所以如果他选择了LA,它应该执行LA if 语句下的代码。

标签: c#uwp

解决方案


您需要SelectionChanged在 XAML 代码中添加事件处理程序。这是一个示例代码 -

XAML

<ComboBox x:Name="myCombo" 
          Header="Fonts" 
          Height="44" 
          Width="296" 
          SelectionChanged="myCombo_SelectionChanged"
          DisplayMemberPath="Source">
    <ComboBoxItem Name="NY">
        <TextBlock Text="New York"/>
    </ComboBoxItem>
    <ComboBoxItem Name="CA">
        <TextBlock Text="California"/>
    </ComboBoxItem>
    <ComboBoxItem Name="DC">
        <TextBlock Text="Washington DC"/>
    </ComboBoxItem>
</ComboBox>
<TextBlock Name="result"/>

C#

    private void myCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (myCombo.SelectedItem == NY)
        {
            result.Text = "You Selected NY";
        }
        else if (myCombo.SelectedItem == DC)
        {
            result.Text = "You Selected DC";
        }
        else if (myCombo.SelectedItem == CA)
        {
            result.Text = "You Selected CA";
        }
    }

希望我能提供帮助。:)


推荐阅读