如何使用WPF在相应的文本框中获取数据网格的选定行数据?

时间:2014-06-04 07:34:03

标签: c# wpf datagrid wpfdatagrid

我遇到一个与使用WPF弹出数据有关的问题,当我点击任何一行时我想把这些数据放到合适的文本框中请参考我的代码

private void Dgrid1_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {


            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\hinal.b\Documents\Database1.accdb");
            con.Open();
            OleDbCommand com = new OleDbCommand("select Name,Address,Location from Imfo" , con);
            OleDbDataReader dr = com.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                txtname.Text = dr[0].ToString();
                txtadd.Text = dr[1].ToString();
                txtloc.Text = dr[2].ToString();

            }
            dr.Close();
            con.Close();   



        }

1 个答案:

答案 0 :(得分:0)

使用数据绑定,您的要求可以非常轻松地实现。 DataGrid类具有名为SelectedItem的属性,该属性与当前选择的任何项目或行相关。我们可以使用此属性从TextBox访问该项目,如下所示:

<DataGrid Name="DataGrid" ... />

...

<TextBox Text="{Binding SelectedItem, ElementName=DataGrid}" />

如果您只想显示所选项目中的一个值,您可以执行以下操作:

<TextBox Text="{Binding SelectedItem.Propertyname, ElementName=DataGrid}" />

但是,我发现您尚未为DataGrid创建自定义数据类型,因此您将无法执行此操作。有关数据绑定的详细信息,请参阅MSDN上的Data Binding Overview页面。