Sdílet prostřednictvím


DataGrid.FrozenColumnCount Vlastnost

Definice

Získá nebo nastaví počet sloupců, které se neposouvají.

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

Hodnota vlastnosti

Počet neposouvají se sloupců. Zaregistrovaná výchozí hodnota je 0. Další informace o tom, co může hodnotu ovlivnit, najdete v tématu DependencyProperty.

Příklady

Následující příklad ukazuje, jak nastavit ukotvení sloupce při výběru možnosti "Ukotvit sloupec" z ContextMenu. Sloupce se přesunou doleva, aby je bylo možné zahrnout do ukotvených sloupců.

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

Poznámky

Ukotvené sloupce jsou sloupce, které jsou vždy zobrazeny a nelze je posunout mimo viditelnost. Ukotvené sloupce jsou vždy sloupce nejvíce vlevo v pořadí zobrazení. Ukotvené sloupce nelze přetáhnout do skupiny nezmrazených sloupců ani je přetáhnout do skupiny ukotvených sloupců.

Pokud chcete ukotvit sloupce, nastavte FrozenColumnCount vlastnost . Sloupce nejvíce vlevo určené číslem FrozenColumnCount se zablokují. Pokud například nastavíte FrozenColumnCount na hodnotu 2, dva levé sloupce na displeji se zablokují. Pokud chcete zjistit, jestli je sloupec již ukotvený, zkontrolujte IsFrozen vlastnost v objektu DataGridColumn.

Platí pro

Viz také