0

私はこれに約2日間苦労しており、問題の答えや解決策を得ることができません. 私はC#WPFを使用していますが、私の問題は次のとおりです。

ItemsSource がバインドされる Datagrid があります。すべての TextColumn は、その値を適切に表示しています。画像またはボタンを含む DataTemplateColumns は、そのセルに入らない限り、その値を表示しません。私は自分の DataGrid を読み取り専用にして、セルをクリックするのではなく、写真を一度に表示したいと考えています。ただし、セルをクリックした場合にのみ表示されます。すでにさまざまな画像形式(png、bmp、jpg)を試しました

では、その DataGrid の問題は何ですか?

DataTemplaceColumn を含む XAML 部分を次に示します。

<DataGrid AlternatingRowBackground="Gainsboro"
              AlternationCount="2"
              AutoGenerateColumns="False"
              Height="200"
              HorizontalAlignment="Left" 
              ItemsSource="{Binding}"
              Name="DgMain" 
              VerticalAlignment="Top" 
              Width="778" 
              CanUserReorderColumns="False" 
              CanUserResizeColumns="False" 
              CanUserResizeRows="False" 
              CanUserSortColumns="True"
              IsReadOnly="True">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Pic">
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <Image x:Name="ImgDgMainPic"></Image>
                        <DataTemplate.Triggers>
                            <DataTrigger Binding="{Binding pic}" Value="pic1">
                                <Setter TargetName="ImgDgMainPic" Property="Source" Value="Images\picture1.png"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding pic}" Value="pic2">
                                <Setter TargetName="ImgDgMainPic" Property="Source" Value="Images\picture2.png"/>
                            </DataTrigger>
                        </DataTemplate.Triggers>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>

DataTriger がバインドする値は、ご覧のとおり、「pic1」または「pic2」を含む文字列です。

前もって感謝します

4

1 に答える 1

2

を使用する代わりに、-CellEditingTemplateを使用する必要があります。CellTemplate

<DataGridTemplateColumn.CellTemplate>
   ......              
</DataGridTemplateColumn.CellTemplate>

セルをダブルクリックして編集可能にすると、CellEditingTemplate が表示されます。一方、CellTemplate は探しているものです。

于 2012-08-15T19:11:51.757 に答える