我遇到一个与使用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();
}
答案 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页面。