找回密码
 立即注册

QQ登录

只需一步,快速开始

queren

注册会员

2

主题

11

帖子

122

积分

注册会员

积分
122
最新发帖
queren
注册会员   /  发表于:2017-2-14 21:37  /   查看:7427  /  回复:14
我在wpf中使用了FlexGrid,并且从数据库读取数据到FlexGrid,请问怎样才能使点击不同的单元格弹出不同的窗体?
比如点击单元格1弹出窗体1,点击单元格2弹出新的窗体2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

14 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2017-2-15 09:33:58
沙发
谢谢您的反馈。
C1FlexGrid提供了鼠标和键盘相关的Click事件,您可以在事件里判断是哪个单元格被点击,从而弹出不同的对话框。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
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
地板

通过flex[row,col]或是flex.Cells[row,col]就可以得到单元格的数据。
对于如何在DataTemplate上获取到子控件,属于WPF平台下的问题。主要需要在VirtualTree上查找子。
您可以在网上查阅相关资料。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
queren
注册会员   /  发表于:2017-2-15 22:10:34
5#
CellRange cr = this.flexgrid.Selection
这种情况下的flexgrid[row,col]获取到的是null,而且没有办法通过cr获取到单元格中的TextBlock,cr无法转为DependencyObject类型
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-2-16 12:18:10
6#
queren 发表于 2017-2-15 22:10
CellRange cr = this.flexgrid.Selection
这种情况下的flexgrid[row,col]获取到的是null,而且没有办法通过 ...

按照我之前提示的思路,对您提到的问题进行测试,没有重现您说的问题。
代码参考:
  1. void _flex_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
  2.       {
  3.           var ht = _flex.HitTest(e);
  4.           CellType celltype = ht.CellType;
  5.           int rindex = ht.Row;
  6.           int cindex = ht.Column;
  7.           var cellcontent = _flex[ht.Row, ht.Column];
  8. }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
queren
注册会员   /  发表于:2017-2-16 14:38:45
7#
本帖最后由 Alice 于 2017-2-16 17:47 编辑

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


回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-2-16 16:38:21
8#
queren 发表于 2017-2-16 14:38
您测试用的也是同时放置了textblock和image的单元格吗?为什么我一触发点击事件就报错了

麻烦您修改下,您的图片看不到,而且一直处于刷新状态。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
queren
注册会员   /  发表于:2017-2-16 16:45:10
9#
获取到的是空值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-2-16 17:48:43
10#
queren 发表于 2017-2-16 16:45
获取到的是空值

麻烦您做个简单的可以重现问题的Demo,我帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部