3

データグリッド列にプログレスバーを表示したい WPF アプリケーションがあります。これが私がこれまでに持っているものです:

    <DataGrid Name="dgOrders" ItemsSource="{Binding}" AutoGenerateColumns="False" HorizontalGridLinesBrush="#35000000" VerticalGridLinesBrush="#35000000" BorderThickness="1" CanUserAddRows="False" CanUserReorderColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" EnableRowVirtualization="False" IsReadOnly="True" RowHeaderWidth="0">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Progress" Width="*" Visibility="Hidden">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ProgressBar Value="{Binding Path=ProgressValue, Mode=OneWay}" Minimum="0" Maximum="100" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

これは機能し、すべての行に素敵なプログレスバーが表示されます。ここで、私が混乱する部分が来ます:私はこのデータグリッドを内部でUserControl使用し、次のように使用しPageます:

<Grid>
    <Controls:OrderDataGrid x:Name="cntrlOrderDataGrid"></Controls:OrderDataGrid>
</Grid>

そして、ページはFrame.

問題は、クラスを実装する方法と場所であり、値バインディングProgressValueを更新します。ProgressBar

4

1 に答える 1

3

ProgressValue は、グリッドに割り当てる ItemsSource に存在する必要があります。ユーザー コントロールとフレームを使用しているかどうかは関係ありません。

このようなもの

public class SomeVal : INotifyPropertyChanged
{
   public int ProgressValue{...}
}

datagrid.ItemsSource = new [] {new SomeVal()};
于 2012-11-06T14:48:32.163 に答える