DataGridColumn.IsFrozen Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur qui indique si la colonne ne peut pas défiler horizontalement.
public:
property bool IsFrozen { bool get(); };
public bool IsFrozen { get; }
member this.IsFrozen : bool
Public ReadOnly Property IsFrozen As Boolean
Valeur de propriété
true
si la colonne ne peut pas défiler horizontalement ; sinon, false
. La valeur par défaut enregistrée est false
. Pour plus d'informations sur ce qui peut influencer la valeur, consultez DependencyProperty.
Exemples
L’exemple suivant montre comment figer une colonne lorsque « Figer la colonne » est sélectionné dans le ContextMenu. Les colonnes sont déplacées vers la gauche pour être incluses dans les colonnes figées.
<!--Defines the handlers for when the FreezeColumnCommand is executed-->
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:Window1.FreezeColumnCommand}" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<!--Defines the context menu for the ColumnHeaders and attaches the FreezeColumnCommand-->
<Window.Resources>
<ContextMenu x:Key="ColumnHeaderMenu" IsEnabled="True" >
<MenuItem Header="Freeze Column" IsEnabled="True" Command="{x:Static local:Window1.FreezeColumnCommand}"
CommandTarget="{Binding RelativeSource={RelativeSource AncestorType=Popup}, Path=PlacementTarget}"
CommandParameter="{Binding ElementName=DG1, Path=CurrentColumn.DisplayIndex}" />
</ContextMenu>
</Window.Resources>
<Grid>
<!--Creates a new DataGrid with a context menu for the column headers-->
<DataGrid Name="DG1" ItemsSource="{Binding}" >
<DataGrid.ColumnHeaderStyle >
<Style TargetType="DataGridColumnHeader">
<Setter Property="ContextMenu" Value="{StaticResource ColumnHeaderMenu}" />
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
</Grid>
public partial class Window1 : Window
{
public static RoutedUICommand FreezeColumnCommand = new RoutedUICommand();
public Window1()
{
InitializeComponent();
//GetData connects to the database and returns the data in a table.
AdventureWorksLT2008DataSet.SalesOrderDetailDataTable dt = GetData();
DG1.DataContext = dt;
}
Class Window1
Public Shared FreezeColumnCommand As New RoutedUICommand()
Public Sub New()
InitializeComponent()
'GetData connects to the database and returns the data in a table.
Dim dt As AdventureWorksLT2008DataSet.SalesOrderDetailDataTable = GetData()
DG1.DataContext = dt
End Sub
private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
//Get the column header that started the command and move that column left to freeze it.
System.Windows.Controls.Primitives.DataGridColumnHeader header = (System.Windows.Controls.Primitives.DataGridColumnHeader)e.OriginalSource;
if (header.Column.IsFrozen ==true)
{
return;
}
else
{
header.Column.DisplayIndex = DG1.FrozenColumnCount;
DG1.FrozenColumnCount++;
}
}
}
Private Sub CommandBinding_Executed(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
'Get the column header that started the command and move that column left to freeze it.
Dim header As System.Windows.Controls.Primitives.DataGridColumnHeader = DirectCast(e.OriginalSource, System.Windows.Controls.Primitives.DataGridColumnHeader)
If header.Column.IsFrozen = True Then
Exit Sub
Else
header.Column.DisplayIndex = DG1.FrozenColumnCount
DG1.FrozenColumnCount += 1
End If
End Sub
Remarques
IsFrozen ne peut pas être utilisé pour figer une colonne. Au lieu de cela, définissez la FrozenColumnCount propriété. Les colonnes les plus à gauche jusqu’à la colonne spécifiée par le FrozenColumnCount nombre se figent en place.