如何从数据库中填充WPF窗口

时间:2016-02-19 12:51:15

标签: c# wpf-controls auto-populate

我想从数据库中自动加载一些数据,以便在加载新窗口时填充一些文本框和组合框。

例如,当我单击while read line do ssh $line <<'EOF' & command command EOF done < list.txt 中的按钮时,window1将显示一个新窗口window1并将window2传递给ID(查询数据库时需要id) 。 我怎么能这样做?

谢谢,

3 个答案:

答案 0 :(得分:1)

  

1)在窗口中创建ui元素

     

2)创建一个包含必填字段的模型类。

     

3)点击时    window1中的按钮将id传递给下一个窗口的构造函数。

     

4)。使用id根据您的需要查询数据库。获取结果   并将字段绑定到ui元素值。

     

5)。这些数据库查询,所有都可以写在你的内部   构造函数或窗口加载事件。

您可以使用MVVM完成此操作。无需编写过多的代码来将值设置为ui。

答案 1 :(得分:0)

答案 2 :(得分:0)

这只是您可以做的一个非常简单的例子:

<强> MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Name="btn1" Click="btn1_Click" Content="Button" Margin="10,10,361,283"></Button>
    </Grid>
</Window>

<强> MainWindow.xaml.cs

  private void btn1_Click(object sender, RoutedEventArgs e)
        {
            Window2 win2 = new Window2(1);
            win2.Show();
        }

<强> Window2.xaml

<Window x:Class="WpfApplication1.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="300" Width="300">
    <Grid Margin="0,0,170,249">
        <TextBox Name="txtBox1" Margin="18,160,-18,-173"></TextBox>
        <TextBox Name="txtBox2" Margin="18,119,-18,-134"></TextBox>
        <TextBox Name="txtBox3" Margin="18,76,-18,-93"></TextBox>
        <TextBox Name="txtBox4" Margin="18,36,-18,-50"></TextBox>
    </Grid>
</Window>

<强> Window2.xaml.cs

public partial class Window2 : Window
    {
        public Window2(int Id)
        {
            InitializeComponent();
            ReadDataFromDB(Id);
        }

        public void ReadDataFromDB(int Id)
        {

            //read your data
            txtBox1.Text = "Some value 1";
            txtBox2.Text = "Some value 2";
            txtBox3.Text = "Some value 3";
            txtBox4.Text = "Some value 4";
        }
    }