DataGrid.FrozenColumnCount Eigenschap

Definitie

Hiermee haalt u het aantal niet-scrollende kolommen op of stelt u deze in.

public:
 property int FrozenColumnCount { int get(); void set(int value); };
public int FrozenColumnCount { get; set; }
member this.FrozenColumnCount : int with get, set
Public Property FrozenColumnCount As Integer

Waarde van eigenschap

Het aantal niet-scrollende kolommen. De geregistreerde standaardwaarde is 0. Zie voor meer informatie over wat invloed kan hebben op de waarde DependencyProperty.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een kolom bevroren maakt wanneer 'Kolom blokkeren' is geselecteerd in de ContextMenukolom . Kolommen worden naar links verplaatst om in de geblokkeerde kolommen te worden opgenomen.

<!--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)
       {
           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

Opmerkingen

Bevroren kolommen zijn kolommen die altijd worden weergegeven en niet uit beeld kunnen worden gescrold. Bevroren kolommen zijn altijd de meest linkse kolommen volgens de weergavevolgorde. U kunt bevroren kolommen niet naar de groep niet-bevroren kolommen slepen of niet-bevroren kolommen naar de groep bevroren kolommen slepen.

Als u kolommen wilt blokkeren, stelt u de FrozenColumnCount eigenschap in. De meest linkse kolommen die door het FrozenColumnCount getal zijn opgegeven, worden geblokkeerd. Als u bijvoorbeeld de FrozenColumnCount optie 2 instelt, worden de twee linkerkolommen in de weergave geblokkeerd. Als u wilt bepalen of een kolom al is geblokkeerd, controleert u de IsFrozen eigenschap op de DataGridColumn.

Van toepassing op

Zie ook