【发布时间】:2025-12-28 17:15:10
【问题描述】:
有一个带有文本框的简单 WPF 窗口。在这个窗口中,我想显示一个用户 ID。这是 winforms 中的一个如此简单的过程,但我似乎无法在 XAML 中完全理解它。 该代码是一个简单的类 - 用户列表如下......
public class User
{
private string userId;
private string employeeNumber;
...
public User()
{ }
public string UserId
{
get
{
return userId;
}
set
{
userId = value;
}
}
public string EmployeeNumber
{
get
{
return employeeNumber;
}
set
{
employeeNumber = value;
}
}
}
...
wpf 窗口的 xaml 是...
<Window
...
<Window.Resources></Window.Resources>
<Grid>
<Label x:Name="lblUserId" Content="User Id" HorizontalAlignment="Left" Margin="84,76,0,0" VerticalAlignment="Top"/>
<Label x:Name="lblEmployeeNumber" Content="Employee Number" HorizontalAlignment="Left" Margin="84,106,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="tbUserId" HorizontalAlignment="Left" Height="23" Margin="200,76,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" />
<TextBox x:Name="tbEmployeeNumber" HorizontalAlignment="Left" Height="23" Margin="200,106,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" />
</Grid>
</Window>
当窗口加载后,这段代码被执行。
public partial class winTest : Window
{
public winTest()
{
InitializeComponent();
}
private User user;
private List<User> userList;
private List<Permissions> permissionsList;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string userId = "1234";
user = UserDB.GetUserInfo(userId);
}
}
...
GetUserInfo 的代码是
public static User GetUserInfo(string userID)
{
User user = new User();
SqlConnection connection = BusinessDB.GetConnection();
string selectStatement = "SELECT userid, empno, FROM employees " +
"WHERE userid = @UserID";
SqlCommand selectCommand = new SqlCommand(selectStatement, connection);
selectCommand.Parameters.AddWithValue("userid", userID);
try
{
connection.Open();
//SqlDataReader reader = selectCommand.ExecuteReader();
SqlDataReader reader = selectCommand.ExecuteReader(CommandBehavior.SingleRow);
if (reader.Read())
{
if (reader["userid"] == DBNull.Value)
{
user.UserId = "";
}
else
{
user.UserId = (reader["userid"]).ToString();
}
if (reader["empno"] == DBNull.Value)
{
user.EmployeeNumber = "";
}
else
{
user.EmployeeNumber = reader["empno"].ToString();
}
}
return user
}
...
单步执行代码显示用户确实填充了正确的信息 - 它是让我知道的绑定部分。上面的 xaml 没有列出任何绑定,因为我已经尝试将它绑定到除了我的狗鼻子之外的所有东西,但我仍然得到空文本框。 任何人都可以帮助一个wpf新手吗?非常感谢。
【问题讨论】: