在加载 wpf 页面之前获取 sql 值

本文关键字:获取 sql 加载 wpf | 更新日期: 2023-09-27 18:34:41

我有一个从数据库中获取信息的wpf应用程序。当我第一次在默认窗口上加载应用程序时,我有需要由数据填充的文本框,但文本框不会被填充,所以我想知道,我将如何在页面加载之前获取值,然后将文本框文本属性设置为数据。我将 LINQ to SQL 代码放在一个尝试和捕获块中,如下所示:

try
{
   MY LINQ TO SQL CODE HERE:
}
catch
{
}

真的必须这样做,好像如果我不这样做,只是放SQL代码,我会收到超时错误。因此,由于我需要执行此操作,因此我的sql代码不会在页面加载之前运行,而是在加载之后运行。如何让它在加载窗口之前运行我的代码,以便我可以设置我的文本框值?谢谢。

在加载 wpf 页面之前获取 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();
    }
}

我建议您在执行查询时显示加载屏幕或类似内容,如果查询失败,则显示失败屏幕/消息。