c# - 如何更改变量中选定的组合框项目
问题描述
我正忙着在 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 语句下的代码。
解决方案
您需要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";
}
}
希望我能提供帮助。:)
推荐阅读
- ios - 同时 UITextView 手势交互
- r - 如何检测和绘制变化?
- python - Python'For Loop'不循环json
- python - 如何找到两个矩阵中存在于同一位置的某个值的索引?
- java - 获取java中任何数据类型总和的通用方法
- java - 在 Scala 中,如何在开始日期和结束日期之间创建一列包含每月日期的日期数组?
- node.js - 节点找不到 Web3 js
- arrays - Google 表格中的 Vlookup 公式
- reactjs - React Hooks:setState 在 useEffect 中表现得很奇怪
- vb.net - Validator 类中的 FluentValidation 自定义函数