queren 发表于 2017-2-14 21:37:12

FlexGrid单元格点击事件

我在wpf中使用了FlexGrid,并且从数据库读取数据到FlexGrid,请问怎样才能使点击不同的单元格弹出不同的窗体?
比如点击单元格1弹出窗体1,点击单元格2弹出新的窗体2

Alice 发表于 2017-2-15 09:33:58

谢谢您的反馈。
C1FlexGrid提供了鼠标和键盘相关的Click事件,您可以在事件里判断是哪个单元格被点击,从而弹出不同的对话框。

queren 发表于 2017-2-15 11:41:00

<c1:Column Width="410">
                              <c1:Column.CellTemplate>
                                    <DataTemplate>
                                        <Grid>
                                          <TextBlock Text="{Binding 名称1}" Margin="20,0,372,10" VerticalAlignment="Center" FontSize="16" TextWrapping="Wrap"/>
                                          <Image Margin="40,0,10,40" Source="{Binding Path=图片1,Converter={StaticResource ImageCovert}, Mode=OneWay}" Stretch="Fill"/>
                                        </Grid>
                                    </DataTemplate>
                              </c1:Column.CellTemplate>
                            </c1:Column >
请问怎么在Click事件中获取被点击单元格中TextBlock的Text?

Alice 发表于 2017-2-15 14:02:41

queren 发表于 2017-2-15 11:41
...

通过flex或是flex.Cells就可以得到单元格的数据。
对于如何在DataTemplate上获取到子控件,属于WPF平台下的问题。主要需要在VirtualTree上查找子。
您可以在网上查阅相关资料。

queren 发表于 2017-2-15 22:10:34

CellRange cr = this.flexgrid.Selection
这种情况下的flexgrid获取到的是null,而且没有办法通过cr获取到单元格中的TextBlock,cr无法转为DependencyObject类型

Alice 发表于 2017-2-16 12:18:10

queren 发表于 2017-2-15 22:10
CellRange cr = this.flexgrid.Selection
这种情况下的flexgrid获取到的是null,而且没有办法通过 ...

按照我之前提示的思路,对您提到的问题进行测试,没有重现您说的问题。
代码参考:
void _flex_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
      {
          var ht = _flex.HitTest(e);
          CellType celltype = ht.CellType;
          int rindex = ht.Row;
          int cindex = ht.Column;
          var cellcontent = _flex;
}

queren 发表于 2017-2-16 14:38:45

本帖最后由 Alice 于 2017-2-16 17:47 编辑

您测试用的也是同时放置了textblock和image的单元格吗?为什么我一触发点击事件就报错了


Alice 发表于 2017-2-16 16:38:21

queren 发表于 2017-2-16 14:38
您测试用的也是同时放置了textblock和image的单元格吗?为什么我一触发点击事件就报错了

麻烦您修改下,您的图片看不到,而且一直处于刷新状态。

queren 发表于 2017-2-16 16:45:10

获取到的是空值

Alice 发表于 2017-2-16 17:48:43

queren 发表于 2017-2-16 16:45
获取到的是空值

麻烦您做个简单的可以重现问题的Demo,我帮你看看。
页: [1] 2
查看完整版本: FlexGrid单元格点击事件