WPF DataGrid中的 自定义列内的TextBox中 怎么获取单元格内所编辑的内容

maxldwy 2013-04-07 11:21:02
我用的是自定义列 想获取 此列单元格内 所编的内容 应该怎么写 求各位大神帮忙!!!
<DataGridTemplateColumn Header="VALUE" Width="*" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Value}" BorderThickness="0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
...全文
839 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
民工_小牛 2014-10-01
  • 打赏
  • 举报
回复
引用 8 楼 ariesget 的回复:
在需要使用这个值得时候直接使用你绑定的数据的Value值就好了。不需要用事件。 如果是想在输入完成的时候根据该值做某些操作可以在绑定的属性的Set中做。
为什么我绑定了后,修改了后数据源没有改变,我觉得是我什么地方没写对,但是却找不到原因,能不能帮我也看看,谢谢: <DataGridTemplateColumn Header="运维负责人" Width="Auto"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Stretch"> <TextBox Name="cellContent" Background="Transparent" BorderThickness="0" IsReadOnly="{Binding ElementName=drOpHistory, Path=IsReadOnly}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Text="{Binding Path=Captain, Mode=TwoWay}"/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
ariesget 2013-04-08
  • 打赏
  • 举报
回复
引用 17 楼 maxldwy 的回复:
引用 15 楼 ariesget 的回复:算了,如果你只是单纯的想获取值得话很简单,用LostFocus事件吧。XAML里加上LostFocus="TextBox_LostFocus" 后台加上 private void TextBox_LostFocus(object sender, RoutedEventArgs e) { ……
不可能是NULL啊。除非你用的不是TextBox控件 可以在后面判断一下tb是否为NULL再执行你的操作。
maxldwy 2013-04-08
  • 打赏
  • 举报
回复
引用 15 楼 ariesget 的回复:
算了,如果你只是单纯的想获取值得话很简单,用LostFocus事件吧。XAML里加上LostFocus="TextBox_LostFocus" 后台加上 private void TextBox_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = send……
大神 谢谢你的帮忙 我弄出来了~~~真的感谢啊...以后多多帮我啊哈 谢谢
maxldwy 2013-04-08
  • 打赏
  • 举报
回复
引用 15 楼 ariesget 的回复:
算了,如果你只是单纯的想获取值得话很简单,用LostFocus事件吧。XAML里加上LostFocus="TextBox_LostFocus" 后台加上 private void TextBox_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = send……
这个事件可以发生 为什么取出来的tb是null?
maxldwy 2013-04-08
  • 打赏
  • 举报
回复
引用 14 楼 ariesget 的回复:
你这样回答还是没说一样。。。 那你设置的DataContext是啥?
我没设置好像~hehe
ariesget 2013-04-07
  • 打赏
  • 举报
回复
算了,如果你只是单纯的想获取值得话很简单,用LostFocus事件吧。XAML里加上LostFocus="TextBox_LostFocus" 后台加上 private void TextBox_LostFocus(object sender, RoutedEventArgs e) { TextBox tb = sender as TextBox; 在这里做你的更新操作,tb.Text就是你要的值 }
ariesget 2013-04-07
  • 打赏
  • 举报
回复
你这样回答还是没说一样。。。 那你设置的DataContext是啥?
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
好的
引用 12 楼 ariesget 的回复:
你得告诉我你绑定的数据源是啥啊? 下次最好引用下我的回复。 你的ItemsSource是啥?
ItemsSource="{Binding}" 我是想通过 获取的 内容 存入数据库 问题是 不会获取,获取不到 内容
ariesget 2013-04-07
  • 打赏
  • 举报
回复
你得告诉我你绑定的数据源是啥啊? 下次最好引用下我的回复。 你的ItemsSource是啥?
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
能帮我写具体了么 我初学 这块还真的弄不好了 我按照你的方法 把它 单建个类?然后呢?我应该把testList[index].Value在我的主方法里怎么调用呢?
ariesget 2013-04-07
  • 打赏
  • 举报
回复
看你绑定的数据源是什么。 比如绑定一个TestObj类 Class TestObj { public string Value{get;set;} } 的数组List<TestObj> testList; 那么前台修改了这个TextBox后只要只要用testList[index].Value就可以拿到修改后的值。
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
我是想 在 单元格内 输入完数据后 获取 它 ,然后保存到数据库中,怎么保存我会,只是不知道怎么 获取我的Value值 应该怎么 取出来呢?
ariesget 2013-04-07
  • 打赏
  • 举报
回复
在需要使用这个值得时候直接使用你绑定的数据的Value值就好了。不需要用事件。 如果是想在输入完成的时候根据该值做某些操作可以在绑定的属性的Set中做。
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
没太明白 我之前用DataGridTextColumn列的时候是在.xaml中的DataGrid里插入 事件 CellEditEnding="dgIndicators_CellEditEnding",然后.cs里方法是: private void dgIndicators_CellEditEnding(object VALUE, DataGridCellEditEndingEventArgs e) { string Value = (e.EditingElement as System.Windows.Controls.TextBox).Text;//提取DataGrid中所编辑单元格的值 } 这么写的 但是换成 怎么按照你说的 去写呢? cs文件里不用再添加 获取值的 类 或者 方法了吗?如果不用应该怎么写呢?
ariesget 2013-04-07
  • 打赏
  • 举报
回复
默认是失去焦点后更新数据的,你可以更改UpdateSourceTrigger=PropertyChanged则他输入的时候就会更新数据
ariesget 2013-04-07
  • 打赏
  • 举报
回复
你已经绑定了就别管前台的事情啊。只要操作后台的数据就好了。 你后台的Value值本身就会随着他的输入而改变,只要输入完后TextBox失去了减掉前台就会把数据传到后台你绑定的值上
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
大哥你终于来帮我了~ 具体点行么 我小菜啊 就像在DataGridTextColumn列中用Value = (e.EditingElement as System.Windows.Controls.TextBox).Text;可以获取当前单元格编辑的内容一样 在Textbox列中可以获取到么?要不然跟我之前的问题冲突了 我既想让它有某行不可编辑 还想让其他 单元格内的值 可以 编辑 并且获取到所编辑的值
ariesget 2013-04-07
  • 打赏
  • 举报
回复
单元格输入之后会传到绑定的值那边去的。TextBox绑定的默认方式应该就是TwoWay
maxldwy 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 ariesget 的回复:
你不是已经绑定Value了么?后台查你绑定的Value的值就行了。
我说想在获取当前在单元格内输入的值 不是绑定的
ariesget 2013-04-07
  • 打赏
  • 举报
回复
你不是已经绑定Value了么?后台查你绑定的Value的值就行了。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧