DataGridの特定の2つのカラムの間にビジュアルセパレータを作成する方法はありますか?それは空想的である必要はありません、おそらく二重線または太い国境です。DataGridカラムセパレータの作成
3
A
答えて
3
はケースでは、あなたはカスタムスタイルを使用して達成することができ、この
のようなものですXAMLからリソースを取得してセパレータ列を作成することもできます。
DataGridTextColumn s1 = new DataGridTextColumn() { Header = "Start" };
DataGridTextColumn s2 = new DataGridTextColumn() { Header = "Start" };
DataGridTextColumn e1 = new DataGridTextColumn() { Header = "End" };
DataGridTextColumn e2 = new DataGridTextColumn() { Header = "End" };
DataGridTemplateColumn column = new DataGridTemplateColumn();
column.MinWidth = 0;
column.Width = 2;
var separatorStyle = (Style)FindResource("DataGridColumnSeparatorStyle");
column.CellStyle = separatorStyle;
dataGrid.Columns.Add(s1);
dataGrid.Columns.Add(e1);
dataGrid.Columns.Add(column);
dataGrid.Columns.Add(s2);
dataGrid.Columns.Add(e2);
+0
キーボードを使用してセルをナビゲートする際、セパレータ列はフォーカスを受け取ります。それは望ましくないことです... –
3
あなたには2つの選択肢があると思います。最も単純なオプションは、おそらくStyle
を使用し、DataGrid.CellStyle
を定義されたスタイルに設定することです。
<Style x:Key="DataGridBorder" TargetType="DataGridCell">
<Setter Property="BorderBrush" Value="LightGray" />
<Setter Property="BorderThickness" Value="1,1,1,1" />
</Style>
...
<DataGrid CellStyle="{StaticResource DataGridBorder}">
...
他の選択肢はDataGridTemplateColumn
と一緒にCellTemplate
を使用することです。
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="LightGray" BorderThickness="1,1,1,1" Margin="-6,-6,-6,-6">
<Grid Margin="6,6,6,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Whatever}" Grid.Column="0" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" />
</Grid>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
私はこれらのいずれもテストしていませんし、少し余裕を持って遊ぶ必要があるかもしれません。自動生成列または他のいずれかによって、あなたはコードビハインドの列を生成する場合
<Window.Resources>
<Style x:Key="DataGridColumnSeparatorStyle" TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Fill="Gray"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Start"/>
<DataGridTextColumn Header="End"/>
<!-- Separator column -->
<DataGridTemplateColumn MinWidth="0" Width="2" CellStyle="{StaticResource DataGridColumnSeparatorStyle}"/>
<DataGridTextColumn Header="Start"/>
<DataGridTextColumn Header="End"/>
</DataGrid.Columns>
</DataGrid>
:
1
これを試してください。キーボードのTabキーを使用して、細胞内を移動する場合は、区切り文字列注力しません。
<DataGridTemplateColumn MinWidth="2" MaxWidth="2" IsReadOnly="True" CanUserResize="False">
<DataGridTemplateColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="Gray" />
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="BorderThickness" Value="2" />
</Style>
</DataGridTemplateColumn.HeaderStyle>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="BorderThickness" Value="2" />
<Setter Property="Focusable" Value="False" />
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>
関連する問題
- 1. dataGridでのリンクの作成
- 2. 空のDataGridを作成する
- 3. WPF DataGrid - 新しいカスタム列の作成
- 4. FlexでDataGridを作成するには?
- 5. カスタムDataGridのItemsSourceを作成する - 動作していない
- 6. DataGrid CollectionViewSourcesをソートするためのWPF ListCollectionViewの作成方法
- 7. WPFToolkit DataGridの列間にギャップを作成する方法
- 8. WPF DataGridのストライプカラーを作成するには?
- 9. DataGridでカスタム列ヘッダーを作成する - バインドの問題
- 10. C#テーブルをDataGridから作成する(2フィールドのみ)
- 11. XHRでDataGridを作成する際の問題
- 12. Datagrid自動生成列カスタムテンプレートバインディング
- 13. 重複する行を作成するDataContext/DataGrid
- 14. C#コードからDataGrid列ストレッチを作成するには?
- 15. C#WPFでプログラムでDataGridを作成する方法は?
- 16. WPF DataGridシングルクリックして新しいアイテムを作成する
- 17. アンドロイドでDataGrid表示を作成する方法は?
- 18. WPFカスタムDataGridCellでカスタムDataGridを作成する方法は?
- 19. DataGridサーバーでプログラムでキャッシュを作成する
- 20. dojo dataGridにサマリー行を作成しますか?
- 21. WPF DataGridでの動的列の生成
- 22. Memcached mysql cluster 7.2.2のTABをデフォルト値のカラムセパレータに変更するには?
- 23. WPF DataGridにXMLを正しくバインドする(ラウンド2)実行時に新しいDataGridを作成する
- 24. WPF Visual C#DataGridのDataGrid
- 25. アンドロイド:dataGridのようなビューを作成しますが、代わりにLinearLayoutsを使用して作成
- 26. Datagridスクロールバーの動作が停止する
- 27. DataGridのようなスクロール動作
- 28. DataGrid - すべての列が作成された後のイベントですか?
- 29. デフォルトのDataGridスタイルに基づいてスタイルを作成する方法は?
- 30. Jackson csv writerが正しいカラムセパレータを使用していません
を列の自動生成したり、コレクションを指定していますか? –
私はすべてのオブジェクトをループし、コレクションにない列を追加して列を指定しています。これは、オブジェクトのすべてが定義されているわけではないにしても、すべての列をテーブルに入れることです。 – shader
幸運。私がwpf DataGridを使って面白く何かをやろうとするたびに、私はそれを後悔しました。 –