WPF button 的点击事件怎么传递参数到事件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF button 的点击事件怎么传递参数到事件中相关的知识,希望对你有一定的参考价值。

既然是用的是事件,那在事件里就可以获取到button相关属性了

        private void Button_Click(object sender, RoutedEventArgs e)
        
            Button button = sender as Button;
            //这句怎么写要取决于你的
            //button上的文本是怎么写的
            string url = button.Content.ToString();
            MessageBox.Show(url);
        

追问

button是模版中的一个按钮,我想获取那一行的整个类的对象,不是button自身的属性。。。

追答

通过视觉树可以查找到绑定的对象。具体可以看你的template怎么写的。

追问

追答

用tag有好有坏,试问如果还想传另外的东西是否就需要tag1,tag2,tagn了?

追问

后来我也发现tag不是很好用,有什么推荐的方法吗?

追答

你另外提个问题吧,或者私信我,这个采纳了还说什么?

参考技术A 定义全局的参数直接拿来用啊! 参考技术B 想传什么参数?追问

datagrid里面每行都有一个button,点击这个button会显示一个新的页面,我想把这个button binding的对象传递到新页面中显示出来

追答

帖出你的绑定代码,xaml的

追问

class Policy

      public string nameget;set;

      public string descriptionget;set;

myList是一个Policy对象的列表,datagrid里面显示了对象的name属性,想通过按钮在一个新的页面显示这个对象的description属性

追答



//后台事件

var description =(sender as FrameworkElement).Tag.ToString();

本回答被提问者采纳

WPF TabControl 下的grid内Button 鼠标点击事件

WPF 我添加了一个TabControl,并且有两个tabItem,每个tabItem的grid下有Button;结构如下图:

然后我无论在最外层的root(Grid),还是tab(TabControl本身),还是内部的it1,it2上面绑定 MouseLeftButtonUp 事件,当单击其他地方的时候都能触发事件,但就是单击btn1,btn2(内部Button)的时候不会触发事件。为什么会这样。有什么样的解决办法吗

出现 XXX_Click_1 的原因:
在设计器上点击按钮自动生成了 XXX_Click 函数,因某个操作 (删除控件后再次添加) 导致 XAML 中 Click="XXX_Click" 代码丢失,然后再次点击按钮而自动生成的。

解决办法很简单,在 XAML 代码编辑器中找到 XXX 然后将 Click="XXX_Click_1" 改成 "XXX_Click" 就可以了。也就是说,可以先定义事件处理函数,然后再为一个或多个控件指定。

RoutedEventArgs 和 EventArgs 不能随意替换。

Route 的意思就是路由,在 WPF 中引入了事件路由这一概念,举个例子比较好理解一点:

窗口中有一系列的控件 Grid\StackPanel\Button 等,

在 WinForm 中:当 Button 的 MouseMove 事件被触发时,其父级控件 (StackPanel、Grid、Form) 是不会触发 MouseMove 事件的。

WPF 中:会因路由概念的引入,导致 Button 的所有父级控件触发 MouseMove 事件,当然,前提是在代码中指定了事件函数。

所以,我们需要 RoutedEventArgs 这个参数,从 e.Source、e.OriginalSource 来确定该事件是由哪个子控件触发的。由于 WPF 控件是由 ControlTemplate 定义的,所以,单个控件也会需要事件路由来确定,该控件的模板中哪个元素引发了事件,从而精确处理控件事件。
参考技术A 点击鼠标事件不是你说的MouseLeftButtonUp,需要绑定Click事件,点击才会有效追问

Grid或者tabControl 不支持click事件吧。所以我才用的MouseLeftButtonUp代替click

以上是关于WPF button 的点击事件怎么传递参数到事件中的主要内容,如果未能解决你的问题,请参考以下文章

swift button的点击方法有多个参数 这种点击事件应该怎么写

在WPF中怎么样实现Button点击事件使那个星星向淘宝那样子逐次变色呢?

C#问题...Form2怎么获取Form1的按钮事件!..

iOS 原生的 UIButton 点击事件是不允许带多参数的,唯一的一个参数就是默认UIButton本身 那么我们该怎么实现传递多个参数的点击事件呢?

WPF代码触发Button点击事件

WPF TabControl 下的grid内Button 鼠标点击事件