请问some1请给我一个示例或代码,如何在c# - wpf app中将数据从datagrid显示到文本框。
我试过像在Windows窗体应用程序中那样做,但代码不起作用。
if (e.RowIndex >= 0)
{
DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
name.Text = row.Cells["Name"].Value.ToString();
lastName.Text = row.Cells["LastName"].Value.ToString();
userName.Text = row.Cells["UserName"].Value.ToString();
password.Text = row.Cells["Password"].Value.ToString();
}
答案 0 :(得分:1)
首先,WPF不是WinForms,尝试以同样的方式编写代码只会让你感到痛苦。你想要做的事实上在WPF中真的很容易!最短的解决方案是直接绑定到DataGrid SelectedItem属性:
<DataGrid x:Name="UserGrid" ItemsSource="{Binding Users}">
...
</DataGrid>
<TextBox Text="{Binding ElementName=UserGrid, Path=SelectedItem.Name}"/>
...More of the same...
现在假设DataGrid绑定到&#34; User&#34;的集合。您的ViewModel中的类(它绝对应该是)(不是您的代码隐藏)。另一种方法是绑定SelectedItem,然后让其他控件绑定到它,如下所示:
<DataGrid x:Name="UserGrid" ItemsSource="{Binding Users}" SelectedItem="{Binding CurrentUser}">
...
</DataGrid>
<TextBox Text="{Binding Path=CurrentUser.Name}"/>
...More of the same...
当然你现在需要一个&#34; CurrentUser&#34;要绑定到的ViewModel中的属性。两种方式都是同样有效的方法,只是决定你更喜欢哪种方式。如果您需要&#34; CurrentUser&#34;代码中的其他东西的对象,第一个更快,如果你不需要它就没有shell属性。如果您没有使用MVVM做任何事情,这是一个很棒的教程(MSDN)。