Is it possible to set ProgressBar as background for DataGridView row? Or color only part of the row from left to right? I have rows that represent some dynamically changing data and I need to show that progress somehow. I want to use an entire row background as a progress bar, how can I do that?
Asked
Active
Viewed 2,094 times
2 Answers
4
If you want to use the entire row it might be best to override the default template of the DataGridRow
using the DataGrid.RowStyle
, then you lay a ProgressBar below the other content, e.g.
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type DataGridRow}">
<Border
x:Name="DGR_Border"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<Grid>
<ProgressBar
Value="{Binding SomeProperty}"
Minimum="0"
Maximum="100" />
<!-- Rest of default template here -->
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>

Cédric Moers
- 395
- 1
- 10

H.B.
- 166,899
- 29
- 327
- 400
0
You can use datagrid templated columns to show any kind of control.
<DataGrid ItemsSource="{Binding items}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ProgressBar></ProgressBar>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

Bathineni
- 3,436
- 18
- 25
-
it's not possible to get the binded value there. – mortenstarck Oct 15 '13 at 10:50