我有一个DataGrid,它已经设置了一个调用方法的doubleclick事件设置器。下面是我的xaml,下面是我的代码隐藏页面。双击事件有效,但返回的结果是“ system.data.datarowview”,我不知道为什么。我正在尝试获取该行的“ vehicleID”值,该值是其自身的隐藏列。

XAML:

<DataGrid Name="OpenVehicles" AutoGenerateColumns="False" IsReadOnly="False" SelectedItem="{Binding vehicleID}" SelectionUnit="FullRow">
<DataGrid.ItemContainerStyle>
    <Style TargetType="DataGridRow">
        <EventSetter Event="MouseDoubleClick" Handler="OpenVehicleClick" />
    </Style>
</DataGrid.ItemContainerStyle>
<DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding vehicleID}" Width="*" Header="vehicleID" Visibility="Hidden"/>
    <DataGridTextColumn Binding="{Binding date, StringFormat=\{0:MMM dd yyyy \}}" Width="*" Header="Date"/>
    <DataGridTextColumn Binding="{Binding companyshortname}" Width="*" Header="Customer"/>
    <DataGridTextColumn Binding="{Binding subject}" Width="5*" Header="Vehicle Description"/>
    <DataGridTextColumn Binding="{Binding FName}" Width="*" Header="Owner"/>
</DataGrid.Columns>




C#代码:

        private void OpenVehicleClick(object sender, RoutedEventArgs e)
    {
        MessageBox.Show(OpenVehicles.CurrentCell.Item.ToString());
    }


我们欢迎任何有关如何检索列值的想法或任何其他建议。我无可奈何。

最佳答案

DataRowView.Row属性将包含所需的DataRow。在这里,您可以使用DataRowView.Row["ColumnName"]索引器访问列值

10-06 13:39