数据网格从销售行中获取隐藏的单元格

本文关键字:获取 隐藏 单元格 数据网 网格 数据 | 更新日期: 2023-09-27 18:20:25

嗨,我在访问所选Row DataGrid中的隐藏值时遇到问题:

<DataGrid Name="grid" ItemsSource ="{Binding}" IsReadOnly="True" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Id_user" Binding="{Binding id_user}" Visibility="Hidden"/>
        <DataGridTextColumn Header="A" Binding="{Binding A}" />
        <DataGridTextColumn Header="B" Binding="{Binding B}" />
    </DataGrid.Columns>
    <DataGrid.ItemContainerStyle>
        <Style TargetType="DataGridRow">
            <EventSetter Event="MouseDoubleClick" Handler="selectRow"/>
        </Style>
    </DataGrid.ItemContainerStyle>
</DataGrid>

这是我用来执行此操作的代码女巫,但我发现该元素不存在。

private void selectRow(object sender, RoutedEventArgs e)
{
    DataRowView row = (DataRowView)grid.SelectedItems[0];
    var x = row["Id_user"];
    this.NavigationService.Navigate(new PageA((string)x));
}

有没有简单的方法可以做到这一点?

编辑:

row["ID"]不是SelectedItem.id.这是不同的

数据网格从销售行中获取隐藏的单元格

您应该将此逻辑移动到视图模型。代码隐藏中的事件处理程序应如下所示:

private void selectRow(object sender,RoutedEventArgs  e) 
{
    ViewModel.Navigate();
}

这是Navigate()实现:

public void Navigate()
{
    NavigationService.Navigate(new PageA(SelectedItem.id_user));
}

剩下要做的就是将视图模型上的SelectedItem属性绑定到您的DataGrid

<DataGrid Name="grid" SelectedItem="{Binding SelectedItem}" ItemsSource ="{Binding Collection}"  IsReadOnly="True" AutoGenerateColumns="False" >