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?
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>
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>
精彩评论