Я использую WPat datagrid для отображения данных. Я пытаюсь понять, как выделить всю строку при щелчке элемента, включая пустые столбцы/пробелы на конце, если в конце есть пустое место (я использую динамически созданные столбцы). Заметьте, я НЕ пытаюсь выделить только определенную ячейку. Это http://imgur.com/7Xjoj2H - это то, что я вижу. Неиспользуемое пространство в конце строки - это пространство, в котором в настоящее время нет столбца, и не подсвечивается. Я хотел бы, чтобы это пространство было выделено также при щелчке по строке. Я пробовал:WPF DataGrid выделить целую строку
Установка ширины в последний столбец авто, чтобы заполнить оставшееся пространство. Это не работает для меня, потому что это отключает горизонтальную полосу прокрутки, которая мне нужна, так как я использую динамически созданные столбцы.
Я также попытался добавить стиль для DataGridRows:
<Trigger Property="IsSelected"
Value="true">
<Setter Property="Background"
Value="{StaticResource SelectedBrush}" />
</Trigger>
Этот вид работ, хотя, когда DataGrid нагрузки, или когда моя программа не в фокусе, это выглядит следующим образом: http://imgur.com/EtTmBbH где подсвечивается только последняя область неиспользуемого пространства.
Если возможно, я бы предпочел не обходить это, просто добавив пустой фиктивный столбец в конец, потому что это приводит к тем же проблемам, что и установка последней ширины столбца для автоматического выше.
Любые предложения?
Edit:
Вот код для стиля DataGridRow:
<Style TargetType="{x:Type DataGridRow}"
x:Key="DataGridRowStyle">
<Setter Property="Background"
Value="White" />
<Style.Triggers>
<Trigger Property="AlternationIndex"
Value="1">
<Setter Property="Background"
Value="#efefef" />
</Trigger>
<Trigger Property="IsMouseOver"
Value="true">
<Setter Property="Background"
Value="{StaticResource RolloverBrush}" />
</Trigger>
<Trigger Property="IsSelected"
Value="true">
<Setter Property="Background"
Value="{StaticResource SelectedBrush}" />
</Trigger>
</Style.Triggers>
</Style>
И выбранная щетка:
<LinearGradientBrush x:Key="SelectedBrush"
StartPoint="0,0"
EndPoint="0,1">
<GradientStop Offset="0"
Color="#3399FF" />
</LinearGradientBrush>
Код для DataGrid:
<DataGrid x:Name="JobListView"
AutoGenerateColumns="False"
ItemsSource="{Binding UnitStatusCollection, Mode=TwoWay}"
CanUserDeleteRows="False"
Style="{StaticResource JobGridViewStyle}"
SelectedIndex="{Binding JobsListViewSelectedIndex, Mode=TwoWay}"
SelectedItem="{Binding JobsListViewSelectedUnitStatusPair}"
Utility:DataGridColumnsBehavior.BindableColumns="{Binding DataGridColumns}"
ContextMenu="{StaticResource ListViewContextMenu}"
Margin="10,0"
Grid.Row="1"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
RowStyle="{StaticResource DataGridRowStyle}"
AlternationCount="2"
HorizontalGridLinesBrush="#5A5A5F"
VerticalGridLinesBrush="#5A5A5F">
Можете ли вы показать тег 'Style' для« DataGridRows »? –
Отредактировано сообщение, чтобы показать его – KSF
Как вы применяете его к сетке? Ваш код работает для меня с помощью 'RowStyle =" {StaticResource DataGridRowStyle} "' в DataGrid. –