找回密码
 立即注册

QQ登录

只需一步,快速开始

gsq0812

中级会员

2

主题

10

帖子

676

积分

中级会员

积分
676

活字格认证

最新发帖
gsq0812
中级会员   /  发表于:2014-4-28 10:15  /   查看:8939  /  回复:7
我在FlexGrid创建如下代码,后台绑定数据ModelID为string,SequenceID为int类型,为什么我修改ModelID的值时按Tab键,修改值显示更新,但是修改SequenceID的值时,值又恢复为原来的值,比方SequenceID原先为3,我修改为4,当按Tab键后,4自动变为3,这是为什么呢?部分Xaml代码如下
  1.         <c1:C1FlexGrid AutoGenerateColumns="False" KeyActionTab="MoveAcross">
  2.             <c1:C1FlexGrid.Columns>
  3.                 <c1:Column ColumnName="ModelID" >
  4.                     <c1:Column.CellTemplate>
  5.                         <DataTemplate>
  6.                             <TextBlock Text="{Binding ModelID}"></TextBlock>
  7.                         </DataTemplate>
  8.                     </c1:Column.CellTemplate>
  9.   
  10.                     <c1:Column.CellEditingTemplate>
  11.                         <DataTemplate>
  12.                             <TextBox Text="{Binding ModelID}" ></TextBox>
  13.                         </DataTemplate>
  14.                     </c1:Column.CellEditingTemplate>

  15.                 </c1:Column>
  16.                 <c1:Column ColumnName="SequenceID">
  17.                     <c1:Column.CellTemplate>
  18.                         <DataTemplate>
  19.                             <TextBlock Text="{Binding SequenceID}"></TextBlock>
  20.                         </DataTemplate>
  21.                     </c1:Column.CellTemplate>

  22.                     <c1:Column.CellEditingTemplate>
  23.                         <DataTemplate>
  24.                             <TextBox Text="{Binding SequenceID}"></TextBox>
  25.                         </DataTemplate>
  26.                     </c1:Column.CellEditingTemplate>
  27.                 </c1:Column>
  28.             </c1:C1FlexGrid.Columns>

  29.         </c1:C1FlexGrid>
复制代码

7 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-4-28 12:12:00
沙发
回复 1楼gsq0812的帖子
比方SequenceID原先为3,我修改为4,当按Tab键后,4自动变为3


抱歉,未能浮现这个问题。
我用的代码如下:

  1. <c1:C1FlexGrid AutoGenerateColumns="False" Name="_flex" Grid.Row="0">
  2.             <c1:C1FlexGrid.Columns>
  3.                 <c1:Column Binding="{Binding ID, Mode=TwoWay}" Width="*" />
  4.                 <c1:Column Binding="{Binding Name, Mode=TwoWay}" Width="*" />
  5.                 <!--<c1:Column Binding="{Binding Birth, Mode=TwoWay}" Width="*" />-->
  6.                 <c1:Column Binding="{Binding Birth, Mode=TwoWay, StringFormat=d}" Width="*" >
  7.                     <c1:Column.CellEditingTemplate>
  8.                         <DataTemplate>
  9.                             <c1:C1DateTimePicker DateTime="{Binding Birth, Mode=TwoWay, StringFormat=d}" />
  10.                         </DataTemplate>
  11.                     </c1:Column.CellEditingTemplate>
  12.                 </c1:Column>

  13.             </c1:C1FlexGrid.Columns>
  14.         </c1:C1FlexGrid>
复制代码


操作截图如下:


请帮看看是否有遗漏。

本帖子中包含更多资源

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

x
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-28 12:43:00
板凳
回复 2楼roger.wang的帖子

我不是通过鼠标左键,而是通过Tab键来切换单元格的,而且你给出的例子不是用的TextBox和TextBlock控件?c1中有没有类似TextBox的控件,我只找到C1MaskedTextBox。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-28 15:02:00
地板
回复 3楼gsq0812的帖子

1 C1中TextBox就是C1MaskedTextBox。
2 替换了1#代码中的TextBlock为C1MaskedTextBox后,可输入数字、且Tab键后可生效。

  

  1.         <c1:C1FlexGrid AutoGenerateColumns="False" Name="_flex" Grid.Row="1" KeyActionTab="MoveAcross">
  2.             <c1:C1FlexGrid.Columns>
  3.                 <c1:Column ColumnName="ModelID" >
  4.                     <c1:Column.CellTemplate>
  5.                         <DataTemplate>
  6.                             <c1:C1MaskedTextBox Text="{Binding ID, Mode=TwoWay}"></c1:C1MaskedTextBox>
  7.                         </DataTemplate>
  8.                     </c1:Column.CellTemplate>
  9.                     <c1:Column.CellEditingTemplate>
  10.                         <DataTemplate>
  11.                             <c1:C1MaskedTextBox Text="{Binding ID, Mode=TwoWay}" ></c1:C1MaskedTextBox>
  12.                         </DataTemplate>
  13.                     </c1:Column.CellEditingTemplate>
  14.                 </c1:Column>
  15.                 <c1:Column ColumnName="SequenceID">
  16.                     <c1:Column.CellTemplate>
  17.                         <DataTemplate>
  18.                             <TextBlock Text="{Binding ID}"></TextBlock>
  19.                         </DataTemplate>
  20.                     </c1:Column.CellTemplate>
  21.                     <c1:Column.CellEditingTemplate>
  22.                         <DataTemplate>
  23.                             <TextBox Text="{Binding ID}"></TextBox>
  24.                         </DataTemplate>
  25.                     </c1:Column.CellEditingTemplate>
  26.                 </c1:Column>
  27.             </c1:C1FlexGrid.Columns>
  28.         </c1:C1FlexGrid>
  29.   
复制代码
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-28 15:18:00
5#
回复 4楼roger.wang的帖子

按照这种方式替换后还是有问题,如果直接鼠标点击该单元格,然后输入数字后按Tab键,这个单元格数据确实改变了,但是,如果鼠标点击该单元格的前一个单元格,然后按Tab键进入该单元格后,直接通过键盘输入数字,然后再按一次Tab键跳转到下一单元格,则输入数字的那个单元格的值又变回原来的了。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-28 16:33:00
6#
回复 5楼gsq0812的帖子

浮现情况了。
请您先用2#直接绑定的试试。

您反映的这个情况,我需要咨询一下产品研发团队,帮您找寻解决办法。
回复 使用道具 举报
gsq0812
中级会员   /  发表于:2014-4-28 16:36:00
7#
回复 6楼roger.wang的帖子

好的,谢谢了。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-4-28 17:08:00
8#
回复 7楼gsq0812的帖子

不客气, 有新消息,我会回复这个帖子和您继续沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部