0

Requests と Items の 2 つのテーブルがあります。この MouseUp イベントは、WinForm DatagridRow 用です。このイベントを WPF DataGrid にどのように使用しますか?

private void gridRequests_MouseUp(object sender, MouseEventArgs e)
        {
            DataTable dt = new DataTable();
            DataBase db = new DataBase();
            try
            {
                s = gridRequests[0, gridRequests.CurrentRow.Index].Value.ToString();
                dt = db.MySelect("select * from Items where RequestID='" + s + "'");
                gridItems.DataSource = dt;
                gridItems.Columns[0].HeaderText = "No.";
                gridItems.Columns[1].HeaderText = "Item Code";
                gridItems.Columns[2].HeaderText = "Item Name";

            }
            catch { }
        }

これをwpfで使用します:

private void requestsDataGrid_MouseUp(object sender, MouseButtonEventArgs e)
        {
            DataTable dt = new DataTable();
            DataBase db = new DataBase();
            s = requestsDataGrid[0, requestsDataGrid.CurrentRow.Index].Value.ToString();
            dt = db.MySelect("select * from Items where RequestID='" + s + "'");
        }

CurrentRow または CurrentCell は私のエラーポイントです。

4

2 に答える 2

0

代わりにDataGrid.SelectedIndexおよび/またはDataGrid.SelectedItemを使用してください

于 2014-02-12T22:02:16.223 に答える
0

アーセンありがとう、私はこれを使いました:

 private void requestsDataGrid_MouseUp(object sender, MouseButtonEventArgs e)
        {
            DataTable dt = new DataTable();
            DataBase db = new DataBase();

                string s = requestsDataGrid.SelectedItem.ToString();

                dt = db.MySelect("select * from Items where RequestID='" + s + "'");
                gridItems.DataContext = dt;
                gridItems.Columns[0].HeaderStringFormat = "No";
                gridItems.Columns[1].HeaderStringFormat = "Item Code;
                gridItems.Columns[2].HeaderStringFormat = "Item Name";

        }

この一般的なエラー: varchar 値 'System.Data.DataRowView' をデータ型 int に変換するときに変換に失敗しました。

于 2014-02-12T23:06:14.693 に答える