0

好吧,我对 WPF 中的 DataGrid 有几个问题。

  1. 我在 DataGrid 中有一个进度条,我想从数据库中显示值[完整的 DataGrid 绑定到我从数据库中获取的 Datatable]。

  2. 我的代码中有一个作为枚举的状态,它的数值存储在数据库中,虽然它是正确的数据绑定,但我想显示枚举“字符串”而不是数值。

我没有找到我们在 ASP.NET 中使用的 rowDataBound 是否可以执行此操作,但不确定现在如何在 WPF 中执行此操作。

<DataGrid Height="125" Grid.Row="1" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Name="grdData" VerticalAlignment="Stretch" ItemsSource="{Binding}" IsReadOnly="True" 
                      GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="#FFBEBEBE" VerticalGridLinesBrush="#FFBEBEBE" RowHeight="25"  BorderThickness="0" 
                      FontWeight="Bold" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}" AlternatingRowBackground="DarkGray" 
                      Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" RowBackground="White" ColumnHeaderHeight="25" VerticalScrollBarVisibility="Visible"
                      BorderBrush="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Task Name" MinWidth="30" Width="100" Binding="{Binding Path=TaskName}" />
                    <DataGridTextColumn Header="Code" MinWidth="30" Width="50" Binding="{Binding Path=TaskCode}" />
                    <DataGridTextColumn Header="Status" Width="50" Binding="{Binding Path=Status}"/>
                    <DataGridTemplateColumn Header="Completed?" Width="*" >
                        <DataGridTemplateColumn.CellTemplate >
                            <DataTemplate>
                                <ProgressBar x:Name="TaskProgress" HorizontalAlignment="Stretch" Value="{Binding Path=CompletePercentage}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>                        

                </DataGrid.Columns>
 </DataGrid>

比我放的 C# 代码

grdData.DataContext = dt

其中 dt 是使用数据库简单选择查询填充的数据表。

谢谢。

4

0 回答 0