0

这是我的问题:选择行的唯一方法是单击图像(绿色圆圈)。

我想做的事情:当我单击时DataGridCell,不仅选择了图像,还选择了整行。

我必须DataGridTemplateColumnDataGrid.

我设置SelectionMode="Single" SelectionUnit="FullRow"为 DataGrid 属性。

但是,如果我没有在图像上完全单击,则不会选择该行。


截图

我做了一些截图来更清楚地解释它:

图片尺寸: 图片尺寸

DataGridCell 的大小 行大小


所以,在我看来,问题可能来自两件事:

  • 尺寸图像不适合整个图像cell,所以这就是为什么,但我怎样才能适应它?
  • 选择Cell被禁用,我可以启用它

谢谢你的时间 !


编辑 1

<DataGridTemplateColumn Header="{Binding, Source={StaticResource proxy}}" HeaderStyle="{StaticResource }" ClipboardContentBinding="{Binding}">
     <DataGridTemplateColumn.CellTemplate >
          <DataTemplate>
               <Grid>
                   <Image Source="{Binding }" Style="{DynamicResource }" /> 
               </Grid>
          </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
4

2 回答 2

0

对于那些想知道它是关于什么的人:

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type DataGridCell}">
            <Grid>
                <ContentPresenter Padding="5,1" />
            </Grid>
        </ControlTemplate>
    </Setter.Value>
</Setter>

这使得图像错误......我不知道为什么,但它失去了点击图像的效果......不知道更多,我用另一种方式添加Padding到行。

于 2017-05-11T08:02:46.757 回答
0

使用Margin而不是Padding.

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type DataGridCell}">
            <Grid Margin="5,1">
                <ContentPresenter/>
            </Grid>
        </ControlTemplate>
    </Setter.Value>
</Setter>
于 2017-05-11T08:08:17.727 回答