ProgressBar в качестве фона для строк DataGridView - PullRequest
1 голос
/ 02 сентября 2011

Можно ли установить ProgressBar в качестве фона для строки DataGridView? Или цвет только часть строки слева направо? У меня есть строки, которые представляют некоторые динамически изменяющиеся данные, и мне нужно как-то показать этот прогресс. Я хочу использовать весь фон строки в качестве индикатора выполнения, как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2011

Если вы хотите использовать всю строку, может быть лучше переопределить шаблон по умолчанию из DataGridRow, используя DataGrid.RowStyle, тогда вы помещаете ProgressBar ниже другого содержимого, например,

<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">
0 голосов
/ 02 сентября 2011

Вы можете использовать шаблонные столбцы для отображения элементов управления любого типа.

<DataGrid ItemsSource="{Binding items}">
                <DataGrid.Columns>
                    <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ProgressBar></ProgressBar>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>
...