C#WPF不同用户控件之间传数据

写工具的时候,为了代码规范化,把各个控件分开来设计,最后放入同一个主界面,便于以后单个控件代码修改调整,一开始的时候遇到一个传值的问题,不同的变量在不同的类下面,怎么样才能实现传值的效果,问了对面一个大佬,用委托的方式解决,下面分享一下代码。

首先单独新建一个类命名为Data,改成静态变量,class前面加static,下面分享一下全部实例代码:

static class Data
    {
        //自定义事件委托 

        //发送信息
        public delegate void PropertyChangedEventHandler(string e);
        static public event PropertyChangedEventHandler propertyChangedHandler;

        //定义数据类型
        static private string data1;

        static public string MyProperty_data1
        {
            get
            {
                return data1;
            }
            set
            {
                data1 = value;
                propertyChangedHandler(data1);
            }
        }     

    }

然后添加两个控件:
在这里插入图片描述
一个控件加入一个按钮,另外一个放一个textbox显示内容,然后给按钮添加点击事件:

private void button_Click(object sender, RoutedEventArgs e)
        {
            Data.MyProperty_data1 = "这是传的数据!";
        }

然后在另外一个控件的load函数里面添加数据绑定代码:

 private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            //绑定数据
            Data.propertyChangedHandler += (val) =>
            {
                textBox.Text = val;
            };
        }

之后就把两个控件加入到MainWindow界面即可,LZ是用WPF做的示例,WinForm同理,最后我们看一下实现效果:
在这里插入图片描述
完美,数据传过去了!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值