开发者

ProgressBar as background for DataGridView rows

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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜