数据网格从销售行中获取隐藏的单元格
本文关键字:获取 隐藏 单元格 数据网 网格 数据 | 更新日期: 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" >