很抱歉,这对我来说是新的。我正在运行WPF,并尝试使用两个不同的UserControl将SQL数据库中的数据调用到网格中。
一个将包含将在其中显示它的DataGrid。第二个是左侧的控制面板,其中包括一个用于运行SQL查询并(希望)以另一种形式填充DataGrid的按钮。
我可以使用此按钮调用一个简单的方法(显示消息框),但是由于某些原因无法执行此操作。如何在“控件” UserControl上按下该按钮以运行SQL查询并将其填充在“主”控件上?任何帮助将不胜感激。
在“控件” UserControl上,我有:
def create(conn, params) do
IO.puts(options)
end
然后在具有DataGrid的较大的UserControl上,我具有以下内容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp2
{
public partial class PortfolioControl : UserControl
{
public PortfolioControl()
{
InitializeComponent();
}
public void button1_Click(object sender, RoutedEventArgs e)
{
Portfolio Portfolio1 = new Portfolio(this);
FillGridTest();
}
public void FillGridTest()
{
Portfolio Portfolio1 = new Portfolio(this);
string connectionString = "user id=username etc...";
string sql = "SELECT * FROM etc...";
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
connection.Open();
dataadapter.Fill(ds, "PortfolioReport");
Portfolio1.grid1.ItemsSource = ds.Tables["PortfolioReport"].DefaultView;
}
}
}
“主”控件上的XAML是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp2
{
public partial class Portfolio : UserControl
{
public Portfolio()
{
InitializeComponent();
}
private PortfolioControl _PortfolioControl;
public Portfolio(PortfolioControl masterForm)
{
InitializeComponent();
_PortfolioControl = masterForm;
}
}
答案 0 :(得分:0)
在这种方法中
public void FillGridTest()
{
Portfolio Portfolio1 = new Portfolio(this);
...
Portfolio1.grid1.ItemsSource = ds.Tables["PortfolioReport"].DefaultView;
}
控件投资组合已创建,但未显示在任何地方。