여기서 가장 좋은 방법은 DataGrid를 포기하고 대신 ListView를 사용하는 것입니다. 그리고 ListView 내부에서 자신 만의 디자인으로 UserControl을 표시하려고합니다. 내가 만든 응용 프로그램과 비슷한 것을했습니다.
ListView에 대한 XAML에서 ItemContainerStyle을 설정하고 내부에 사용자 정의 UserControl (행/열 및 해당 기간 설정을 위해 그리드를 사용할 수 있음)을 표시하고자 할 것입니다. 두 번째는 컬럼에 더 큰 범위를 가지고,
<ListView
Name="_listView"
Grid.Row="0" Grid.Column="0"
SelectionMode="Single"
IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedAgent, Mode=TwoWay}"
ItemsSource="{Binding Agents, Mode=OneWay}"
GridViewColumnHeader.Click="ListView_Click"
DependencyProperties:ListBoxClickCommand.ClickCommand="{Binding ShowAgentDetailsCommand}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border
Name="_border"
Padding="2"
CornerRadius="5"
SnapsToDevicePixels="true"
Background="Transparent">
<Controls:AgentStateControl></Controls:AgentStateControl>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="_border" Property="Background" Value="CornflowerBlue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
AgentStateControl 내 사용자 지정 컨트롤, 그리고 두 개의 행이 : 그것은 기본적으로 다음과 같습니다. 원하는 컨트롤을 만들 수 있습니다.
감사합니다. 그리드가 이런 종류의 스타일링을 지원하지 않을 것이라고 확신했지만 확실하게 싶었습니다. –