Freigeben über


DataGrid.FrozenColumnCount Eigenschaft

Definition

Ruft die Anzahl der Spalten ohne Bildlauf ab, oder legt diese fest.

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

Eigenschaftswert

Die Anzahl der Spalten ohne Bildlauf. Der registrierte Standardwert ist 0. Weitere Informationen zu Einflüssen auf diesen Wert finden Sie unter DependencyProperty.

Beispiele

Das folgende Beispiel zeigt, wie eine Spalte eingefroren wird, wenn "Spalte fixieren" aus dem ContextMenuausgewählt wird. Spalten werden nach links verschoben, um in die fixierten Spalten eingeschlossen zu werden.

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

Hinweise

Fixierte Spalten sind Spalten, die immer angezeigt werden und nicht außerhalb der Sichtbarkeit scrollen können. Fixierte Spalten sind immer die am weitesten links stehenden Spalten in der Anzeigereihenfolge. Sie können fixierte Spalten nicht in die Gruppe der nicht eingefrorenen Spalten ziehen oder nicht eingefrozen Spalten in die Gruppe der fixierten Spalten ziehen.

Legen Sie zum Fixieren von Spalten die FrozenColumnCount -Eigenschaft fest. Die durch die FrozenColumnCount Zahl angegebenen spalten links werden eingefroren. Wenn Sie z. B. auf FrozenColumnCount 2 festlegen, werden die beiden linken Spalten in der Anzeige eingefroren. Um festzustellen, ob eine Spalte bereits fixiert ist, überprüfen Sie die IsFrozen -Eigenschaft für .DataGridColumn

Gilt für:

Weitere Informationen