私はしばらくの間使用してきた WPF DataGrid を持っていますが、うまく機能します。ここにある他のポスターとは異なり、スクロールバーやマウス ホイールに問題はありませんでした (まだ)。DataGrid の最後に移動するようにCTRLENDプログラムし、最後に追加された項目を追跡します。DataGrid
キーでコンテンツを上にスクロールできupます。
しかし、私はキーで本当に奇妙な動作をしていdownます! 上から開始しDataGrid
てdownキーを押したままにすると、少しスクロールしてから、最終的に隣接する 2 つの行の間を行ったり来たりします。Ipgdnの場合、さらに下にスクロールし、ジャンプする前の 2 つの行の一番上に戻り、I が移動したポイントまで下にスクロールしpgdnます。さらにページダウンすると、downキーが最後までスクロールします。の先頭に移動してDataGrid
最初からやり直すと、まったく同じ動作が何度も繰り返されます。
これに対処する投稿をまだ見つけていませんDataGrid
。ドキュメントにも役立つものは何もありません。
これDataGrid
は、各列にTextBlock
s が表示される 3 列の です。スクロールのこの 1 つのモードだけが問題である理由を誰か説明できますか? XAML は次のとおりです。
<DataGrid ItemsSource="{Binding MainLog}" AutoGenerateColumns="False"
Name="log_datagrid" SelectedCellsChanged="log_datagrid_SelectedCellsChanged"
KeyUp="datagrid_KeyUp" LoadingRow="log_datagrid_LoadingRow">
<DataGrid.Columns>
<!-- timestamp -->
<DataGridTemplateColumn Header="Timestamp">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Timestamp}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- level -->
<DataGridTemplateColumn Header="Level">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Level}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- error message -->
<DataGridTemplateColumn Header="Message">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Message}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
ちなみに、この動作は、イベント ハンドラーのコード ビハインドをすべてコメント アウトした場合でも発生します。
私の MainLog コレクションに含まれる構造体の定義は次のとおりです。
public struct MainLogData
{
public string Timestamp { get; set; }
public string Level { get; set; }
public string Message { get; set; }
}