Событие двойного щелчка мыши DataGrid для заполнения данных в Combo Box WPF - PullRequest
0 голосов
/ 11 апреля 2020

Я бы хотел, чтобы у пользователя открылось новое окно, а текстовые поля и поля со списками заполнялись строкой DataGrid, выбранной для события двойного щелчка. До сих пор мне удавалось выполнить это с текстовыми полями, но без полей со списком. Поля со списком отображаются в виде числовых значений c в базе данных и указывают на другую таблицу для своих элементов. С помощью windowToOpen.cmb_UtilityRptTyp.SelectedIndex = windowToOpen.cmb_UtilityRptTyp.Items.Add(row["RPTTYPE"]); я могу показать значение цифры c в новом окне, но я не уверен, как связать все, чтобы отобразить текст, как это сделано в txt_UtilityRptTyp_Loaded

Это тело Код заполняет поле со списком значениями таблицы из базы данных SQL

 public void txt_UtilityRptTyp_Loaded(object sender, RoutedEventArgs e)
    {
        {
            SqlConnection connection = new SqlConnection("Data Source=WINDOWS-B1AT5HC\\SQLEXPRESS;Initial Catalog=CustomerRelations;Integrated Security=True;");

            try
            {
                connection.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            try
            {
                SqlDataAdapter Status_data = new SqlDataAdapter("SELECT RPTID, ReportType FROM [hb_RptType]", connection);
                DataSet ds = new DataSet();
                Status_data.Fill(ds, "t");

                cmb_UtilityRptTyp.ItemsSource = ds.Tables["t"].DefaultView;
                cmb_UtilityRptTyp.DisplayMemberPath = "ReportType";
                cmb_UtilityRptTyp.SelectedValuePath = "RPTID";

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }

. В этом теле кода показано, что новое окно открыто, а текстовые поля и поля со списками заполнены значениями из выбранной строки.

 private void dtGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {

        // User double clicks on DataGrid Row
        // Open new Window
        // Populate selected textboxes with selected datarow
        DataGrid gd = (DataGrid)sender;
        DataRowView row_selected = gd.SelectedItem as DataRowView;

        var windowToOpen = new Window1();

        if (gd != null)
        {
            // Textboxes
            windowToOpen.txt_RowRecrd.Text = row_selected["DSP_ID"].ToString();
            windowToOpen.txt_acctnumber.Text = row_selected["ACCOUNT"].ToString();
            windowToOpen.txt_analyst.Text = row_selected["TX_EMPLOYEE"].ToString();
            windowToOpen.txt_custname.Text = row_selected["CUST_NAME"].ToString();
            windowToOpen.txt_address.Text = row_selected["PREM_ADDR"].ToString();
            windowToOpen.txt_Status.Text = row_selected["Status"].ToString();
            windowToOpen.txt_opened.Text = row_selected["OPENED"].ToString();
            windowToOpen.txt_deadline.Text = row_selected["DEADLINE"].ToString();
            windowToOpen.txt_DateResolved.Text = row_selected["DATERSLVD"].ToString();
            windowToOpen.txt_revcls.Text = row_selected["RateType"].ToString();
            windowToOpen.txt_WFMissuedBy.Text = row_selected["NM_USER"].ToString();
            windowToOpen.txt_firstreview.Text = row_selected["FR_DT_FIRSTREV"].ToString();
            windowToOpen.txt_Latestupdate.Text = row_selected["FR_TS_LATESTUPD"].ToString();
            windowToOpen.txt_reviewNotes.Text = row_selected["FR_CMMNT"].ToString();
            windowToOpen.txt_ResolutionNotes.Text = row_selected["COMMENT"].ToString();



            // ComboBoxes

            foreach (DataRowView row in dtGrid.SelectedItems)
            {
                windowToOpen.cmb_UtilityRptTyp.Items.Clear();
                windowToOpen.cmb_UtilityRptTyp.SelectedIndex = windowToOpen.cmb_UtilityRptTyp.Items.Add(row["RPTTYPE"]);
            }

            windowToOpen.Show();
        }
        else
        {
            return;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...