0

我有两个表:请求和项目。此 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

谢谢阿森,我用这个:

 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 回答
0

改用DataGrid.SelectedIndex和/或DataGrid.SelectedItem

于 2014-02-12T22:02:16.223 回答