2012-11-06 105 views
3

我有一个WPF应用程序,我想在datagrid列中显示一个进度条。这是我到目前为止:将ProgressBar添加到DataGrid列

<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值绑定。

回答

3

ProgressValue应在的ItemsSource存在分配给电网,如果您使用的用户控件和框架或不

像这样的事情

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

datagrid.ItemsSource = new [] {new SomeVal()}; 
它是不相关