在加载 wpf 页面之前获取 sql 值
本文关键字:获取 sql 加载 wpf | 更新日期: 2023-09-27 18:34:41
我有一个从数据库中获取信息的wpf应用程序。当我第一次在默认窗口上加载应用程序时,我有需要由数据填充的文本框,但文本框不会被填充,所以我想知道,我将如何在页面加载之前获取值,然后将文本框文本属性设置为数据。我将 LINQ to SQL 代码放在一个尝试和捕获块中,如下所示:
try
{
MY LINQ TO SQL CODE HERE:
}
catch
{
}
我真的必须这样做,好像如果我不这样做,只是放SQL代码,我会收到超时错误。因此,由于我需要执行此操作,因此我的sql代码不会在页面加载之前运行,而是在加载之后运行。如何让它在加载窗口之前运行我的代码,以便我可以设置我的文本框值?谢谢。
您可以考虑为此使用异步绑定。 它甚至内置于 XAML 语法中,如下所示:
<TextBox Text="{Binding Path=MyBinding,IsAsync=True,FallbackValue=Loading...}" />
现在假设 MyBinding 属性运行您的 SQL:
string _myBinding = null;
public string MyBinding {
get {
if (_myBinding == null)
{
// get value from SQL operation
}
return _myBinding;
}
}
现在,TextBox 将显示回退值("正在加载..."(,并且 UI 不会阻塞,但会在 SQL 操作完成时加载。
最好采用这种方法,而不是在 SQL 操作运行时阻止 UI(用户可能会认为你的应用被冻结、感到沮丧等(。
将查询代码放在实例化窗口时调用的构造函数中。
public class myWindow : Window
{
public myWindow()
{
//code here
InitializeComponent();
}
}
我建议您在执行查询时显示加载屏幕或类似内容,如果查询失败,则显示失败屏幕/消息。