FlexGrid单元格点击事件
我在wpf中使用了FlexGrid,并且从数据库读取数据到FlexGrid,请问怎样才能使点击不同的单元格弹出不同的窗体?比如点击单元格1弹出窗体1,点击单元格2弹出新的窗体2
谢谢您的反馈。
C1FlexGrid提供了鼠标和键盘相关的Click事件,您可以在事件里判断是哪个单元格被点击,从而弹出不同的对话框。 <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? queren 发表于 2017-2-15 11:41
...
通过flex或是flex.Cells就可以得到单元格的数据。
对于如何在DataTemplate上获取到子控件,属于WPF平台下的问题。主要需要在VirtualTree上查找子。
您可以在网上查阅相关资料。
CellRange cr = this.flexgrid.Selection
这种情况下的flexgrid获取到的是null,而且没有办法通过cr获取到单元格中的TextBlock,cr无法转为DependencyObject类型 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;
}
本帖最后由 Alice 于 2017-2-16 17:47 编辑
您测试用的也是同时放置了textblock和image的单元格吗?为什么我一触发点击事件就报错了
queren 发表于 2017-2-16 14:38
您测试用的也是同时放置了textblock和image的单元格吗?为什么我一触发点击事件就报错了
麻烦您修改下,您的图片看不到,而且一直处于刷新状态。 获取到的是空值
queren 发表于 2017-2-16 16:45
获取到的是空值
麻烦您做个简单的可以重现问题的Demo,我帮你看看。
页:
[1]
2