私は顧客の情報でdatagridviewを得ました。私はdatagridviewで表現していないバックグラウンドデータを持っています。私は、DataGridの選択された行に顧客IDを取得しようとします。このコードを使用しようとしましたが、DataGrid.SelectedItemをDataViewRowに変換する際にエラーが発生しました。c#wpf datagridview選択された行
ここは私のC#コードです。
private void searchPayment_btn_Click(object sender, RoutedEventArgs e)
{
DataRowView drv = (DataRowView)customerDataGrid.SelectedItem;
String result = (drv["customer_id"]).ToString();
presenter.getSelecetedCustomerPayment(Convert.ToInt32(result));
}
デバッグモードでは、customerDataGrid.SelectedItemが正しいことがわかります。それは "customer_id"を含む私のすべてのデータを返します。
これは私のDataGridのXAMLコードです。
<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>