WPF 跨用户控件传递数据

参考链接: https://blog.csdn.net/wnk1997/article/details/105920336

WPF 跨用户控件传递数据

前言

在写Wpf程序中,经常为了解耦,会写不同的用户控件组装到一个界面上,这样便于管理。但是呢,如果直接通过这个大的界面的某控件调用另一个其他用户控件中的控件,是不行滴!所以,这就是写本篇文章的理由。

项目实现

项目结构

image

2个用户控件【1个存放Button、1个存放TextBox】、1个主窗体【存放前2个用户控件】
1个工具类【实现 跨用户控件传递数据 】。

效果演示

image
点击按钮
image

项目代码

工具类

namespace Wpf跨用户控件传数据
{
    static public class DataTool
    {
        //自定义事件委托
        //发送信息
        public delegate void PropertyChangedEventHandler(string e);
        static public event PropertyChangedEventHandler propertyChangedHandler;

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

        static public string MyProperty_data
        {
            get
            {
                return data;
            }
            set
            {
                data = value;
                propertyChangedHandler(data);
            }
        }
    }
}

2个用户控件后台代码

namespace Wpf跨用户控件传数据
{
    /// <summary>
    /// UserControlButton.xaml 的交互逻辑
    /// </summary>
    public partial class UserControlButton : UserControl
    {
        public UserControlButton()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            DataTool.MyProperty_data = "这是传的数据!";
        }
    }
}
namespace Wpf跨用户控件传数据
{
    /// <summary>
    /// UserControlTextBox.xaml 的交互逻辑
    /// </summary>
    public partial class UserControlTextBox : UserControl
    {
        public UserControlTextBox()
        {
            InitializeComponent();

            //绑定数据
            DataTool.propertyChangedHandler += (val) =>
            {
                textBox.Text = val;
            };
        }
    }
}
posted @ 2023-05-29 15:23  不爱菠萝的菠萝君  阅读(1035)  评论(0)    收藏  举报