我有一个WPF应用程序,我想在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
值绑定。
答案 0 :(得分:3)
ProgressValue应该存在于您分配给网格的ItemsSource中,如果您使用的是usercontrols和frames,则它不相关
像这样的东西
public class SomeVal : INotifyPropertyChanged
{
public int ProgressValue{...}
}
datagrid.ItemsSource = new [] {new SomeVal()};