c#wpf datagridview选定行
我得到了一个带有客户信息的datagridview。我有在datagridview上没有表示的背景数据。我尝试在datagrid中的选定行上获取客户id。我尝试使用此代码,但在将datagrid.SelectedItem转换为DataViewRow时出错 这是我的C代码 在调试模式下,我可以看到customerDataGrid.SelectedItem是正确的。它返回我的所有数据,包括“客户id” 这是我的datagrid的XAML代码c#wpf datagridview选定行,c#,wpf,datagridview,selecteditem,C#,Wpf,Datagridview,Selecteditem,我得到了一个带有客户信息的datagridview。我有在datagridview上没有表示的背景数据。我尝试在datagrid中的选定行上获取客户id。我尝试使用此代码,但在将datagrid.SelectedItem转换为DataViewRow时出错 这是我的C代码 在调试模式下,我可以看到customerDataGrid.SelectedItem是正确的。它返回我的所有数据,包括“客户id” 这是我的datagrid的XAML代码 <DataGrid x:Name="customer
<DataGrid x:Name="customerDataGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="10,10,326,10" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding tc_id_no}" Header="National ID"/>
<DataGridTextColumn Binding="{Binding firstname}" Header="Name"/>
<DataGridTextColumn Binding="{Binding lastname}" Header="Lastname"/>
<DataGridTextColumn Binding="{Binding group_name}" Header="Group"/>
<DataGridTextColumn Binding="{Binding birthdate}" Header="Birthdate"/>
<DataGridTextColumn Binding="{Binding parent_name}" Header="Parent Name"/>
<DataGridTextColumn Binding="{Binding phone_number}" Header="Phone"/>
<DataGridTextColumn Binding="{Binding email}" Header="Email"/>
<DataGridTextColumn Binding="{Binding gender}" Header="Gender"/>
</DataGrid.Columns>
</DataGrid>
返回数据网格的(第一个)当前选定项。这意味着这是您的Customer
类的对象(我想这是类的名称),没有DataRowView
之类的内容。如果您对所选项目进行强制转换,您只需获取客户的任何属性即可。请注意,您必须检查所选项目是否为空,因为无法选择任何项目:
Customer selectedCustomer = customerDataGrid.SelectedItem as Customer;
if (selectedCustomer != null)
{
//Get the properties you need
string selectedCustomerId = selectedCustomer.Id;
}
试试这个:
DataRowView行=(DataRowView)DataGrid.SelectedItems[0]
0是第一个交叉点中的第一个项目,请尝试通过试错法获取索引,继续使用索引,直到获得所需的索引
Customer selectedCustomer = customerDataGrid.SelectedItem as Customer;
if (selectedCustomer != null)
{
//Get the properties you need
string selectedCustomerId = selectedCustomer.Id;
}