WPF里如何为DataTemplate里的控件设置统一的事件?

wushang923 2011-08-04 12:54:16
DataTemplate 存在于外部的资源文件中(.xmal),我在MainWindow里加载了它。

现在希望,当我点击这个DataTemplate里的某一个Button时,会使MainWindow里的TextBox.Text显示当前点击的这个Button.Content。


问题:

1、如果我要在DataTemplate里写Button.Click的事件,就需要另外指定x:Class, 但是TextBox是存在于MainWindow里的,无法操作啊?


2、如果我要在MainWindow.cs下给DataTemplate里的Button添加Click的事件,就需要知道这个Button的Name,但是DataTemplate里有很多个Button,难不成都用Name找?而且DataTemplate是动态的,里面有什么元素什么名字的也不固定啊。


3、我找到ButtonBase.Click这个事件,可以使MainWindow下的所有Button都作出一样的反应,比如使TextBox.Text="1",但是却无法获取当前点击的这个Button的信息,请问有什么方法啊?

...全文
283 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wushang923 2011-08-04
  • 打赏
  • 举报
回复
或者说还有其他的什么方法可以实现 我想要的那种效果吗?
wushang923 2011-08-04
  • 打赏
  • 举报
回复
我看错了,应该是想知道TextBox有没有类似的统一设置。
沝林 2011-08-04
  • 打赏
  • 举报
回复
Button.Click是路由事件,在Click事件路由没有被中断的情况下,在MianWindow中的控件上可以接收到子控件的DataTemplate内部所有Button控件的Click事件,这个也就是你说的第3条,要获得Button的信息,你可以将sender强制换转为Button

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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