さて、WPF の DataGrid にはいくつか問題があります。
データベースから値を表示したいDataGridにプログレスバーがあります[完全なDataGridは、データベースから取得したDatatableにバインドされています]。
コードにEnumとしてステータスがあり、その数値はデータベースに格納されていますが、適切にデータバインドされていますが、数値ではなくEnumの「文字列」を表示したいです。
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 は、データベースの単純な選択クエリを使用して入力されたデータテーブルです。
ありがとう。