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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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>
</ControlTemplate>
</Setter.Value>
</Setter Property="Template">
回答2:
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>