我正在努力解决这个问题大约2天,无法得到答案或解决我的问题。 我正在使用C#WPF,我的问题在这里:
我有一个DataSrid,ItemsSource被绑定。每个TextColumn都正确显示其值。包含图片或按钮的DataTemplateColumns不会显示其值,只要我不输入该Cell。我希望我的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”的字符串,如您所见。
先谢谢
答案 0 :(得分:2)
您应该使用CellEditingTemplate
-
CellTemplate
<DataGridTemplateColumn.CellTemplate>
......
</DataGridTemplateColumn.CellTemplate>
双击单元格后,将显示CellEditingTemplate以使其可编辑。而CellTemplate就是你要找的。 p>