DataGrid.FrozenColumnCount Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur jumlah kolom non-gulir.
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
Nilai Properti
Jumlah kolom yang tidak menggulir. Default terdaftar adalah 0. Untuk informasi selengkapnya tentang apa yang dapat memengaruhi nilai, lihat DependencyProperty.
Contoh
Contoh berikut menunjukkan cara membuat kolom dibekukan saat "Bekukan Kolom" dipilih dari ContextMenu. Kolom dipindahkan ke kiri untuk disertakan dalam kolom beku.
<!--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
Keterangan
Kolom beku adalah kolom yang selalu ditampilkan dan tidak dapat digulir keluar dari visibilitas. Kolom beku selalu merupakan kolom paling kiri dalam urutan tampilan. Anda tidak dapat menyeret kolom beku ke dalam grup kolom yang tidak dibekukan atau menyeret kolom yang tidak dibekukan ke dalam grup kolom beku.
Untuk membekukan kolom, atur FrozenColumnCount properti . Kolom paling kiri yang ditentukan oleh FrozenColumnCount angka akan menjadi beku. Misalnya, jika Anda mengatur FrozenColumnCount ke 2, dua kolom kiri dalam tampilan dibekukan. Untuk menentukan apakah kolom sudah dibekukan, periksa IsFrozen properti pada DataGridColumn.