获取隐藏列的值
Get value of a hidden column
我有一个 DataGrid
,每行有一个 ID,Name
列和一个 HyperLinkButton
列。我的 ID
列被 属性 Visibility="Collapsed"
隐藏了。在 HyperLinkButton 的 Click
事件中,我正在访问我的列值,但当它被隐藏时我无法访问该列,即它 returns 为空。它只有在我完成 Visible
后才能访问。这个问题有什么解决办法吗?
XAML 数据网格:
<sdk:DataGrid AutoGenerateColumns="False"
HorizontalAlignment="Left"
Height="163"
VerticalAlignment="Top"
Name="ProductGrid">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="ID"
Binding="{Binding Path=ProductID, Mode=OneWay}"
Header="ID"
IsReadOnly="True"
Width="50"
Visibility="Collapsed" />
<sdk:DataGridTextColumn x:Name="Name"
Binding="{Binding Path=Name, Mode=OneWay}"
Header="Name"
IsReadOnly="True"
Width="340" />
<sdk:DataGridTemplateColumn Header="">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate x:Name="gridTemplate">
<StackPanel Orientation="Vertical"
VerticalAlignment="Center">
<HyperlinkButton Content="Details"
Tag="Hyperlinkbutton"
HorizontalAlignment="Center"
Click="OnGetDetailsClick"
Width="100" />
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
HyperLink 的点击事件:
var selectedGridRow = DataGridRow.GetRowContainingElement(sender as FrameworkElement);
TextBlock txtblkID = (TextBlock)ProductGrid.Columns[0].GetCellContent(selectedGridRow);
p.ID = Int32.Parse(txtblkID.Text);
您可以获取所选行的 DataContext 并从中获取值。将 DataSourceType 替换为您的模型。
var selectedGridRow = DataGridRow.GetRowContainingElement(sender as FrameworkElement);
p.ID = ((DataSourceType)selectedGridRow.DataContext).ProductID;
我有一个 DataGrid
,每行有一个 ID,Name
列和一个 HyperLinkButton
列。我的 ID
列被 属性 Visibility="Collapsed"
隐藏了。在 HyperLinkButton 的 Click
事件中,我正在访问我的列值,但当它被隐藏时我无法访问该列,即它 returns 为空。它只有在我完成 Visible
后才能访问。这个问题有什么解决办法吗?
XAML 数据网格:
<sdk:DataGrid AutoGenerateColumns="False"
HorizontalAlignment="Left"
Height="163"
VerticalAlignment="Top"
Name="ProductGrid">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="ID"
Binding="{Binding Path=ProductID, Mode=OneWay}"
Header="ID"
IsReadOnly="True"
Width="50"
Visibility="Collapsed" />
<sdk:DataGridTextColumn x:Name="Name"
Binding="{Binding Path=Name, Mode=OneWay}"
Header="Name"
IsReadOnly="True"
Width="340" />
<sdk:DataGridTemplateColumn Header="">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate x:Name="gridTemplate">
<StackPanel Orientation="Vertical"
VerticalAlignment="Center">
<HyperlinkButton Content="Details"
Tag="Hyperlinkbutton"
HorizontalAlignment="Center"
Click="OnGetDetailsClick"
Width="100" />
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
HyperLink 的点击事件:
var selectedGridRow = DataGridRow.GetRowContainingElement(sender as FrameworkElement);
TextBlock txtblkID = (TextBlock)ProductGrid.Columns[0].GetCellContent(selectedGridRow);
p.ID = Int32.Parse(txtblkID.Text);
您可以获取所选行的 DataContext 并从中获取值。将 DataSourceType 替换为您的模型。
var selectedGridRow = DataGridRow.GetRowContainingElement(sender as FrameworkElement);
p.ID = ((DataSourceType)selectedGridRow.DataContext).ProductID;