'DataGrid'不包含'Selected'的定义



我试图运行这段代码,以获得从DataGridView值显示在文本框中,当我双击鼠标在行。

private void dgvUsers_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
try
{
if (sender != null)
{
DataGrid grid = sender as DataGrid;
if (grid != null && grid.SelectedItems.Count == 1)
{
//This is the code which helps to show the data when the row is double clicked.
//The SelectedItem property of RadGridView is used to access the data item of the selected row. It changes its value every time the selected row changes and exposes the object to which the row is bound. 
DataGridRow dgr = grid.ItemContainerGenerator
.ContainerFromItem(grid.SelectedItem) as DataGridRow;
DataRowView dr = (DataRowView)dgr.Item;
txtUserID.Text = dr[0].ToString();
txtFirstName.Text = dr[1].ToString();
txtLastName.Text = dr[2].ToString();
txtEmail.Text = dr[3].ToString();
txtUserName.Text = dr[4].ToString();
txtPassword.Text = dr[5].ToString();
txtContact.Text = dr[6].ToString();
txtAddress.Text = dr[7].ToString();
cmbGender.Text = dr[8].ToString();
cmbUserType.Text = dr[9].ToString();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}

文本框显示数据。但还是有一个错误。错误显示:-

'DataGrid'不包含'Selected'的定义,并且无法找到接受'DataGrid'类型的第一个参数的可访问扩展方法'Selected'(您是否缺少using指令或程序集引用?)- CS1061

我不知道如何解决它。如有任何帮助,不胜感激。

My DataGrid reference:-

<DataGrid x:Name="dgvUsers"  IsReadOnly="True"
SelectedItem="{Binding SelectedItem}" SelectionMode="Single"
HorizontalAlignment="Left" Height="504" Margin="375,104,0,0"
VerticalAlignment="Top" Width="590"
MouseDoubleClick="dgvUsers_MouseDoubleClick"/>

尝试在textbox上使用Binding,而不是在c#代码中复制值。

<StackPanel DataContext="{Binding ElementName=dgvUsers, Path=SelectedItem, Mode=OneWay}">
<TextBox Text="{Binding Path=FirstName, Mode=TwoWay}" />
<TextBox Text="{Binding Path=LastName, Mode=TwoWay}" />
...
</StackPanel>

所选属性不在WPF数据网格中。您可以使用SelectedItem, SelectedItems或SelectedValue。

最新更新