写工具的时候,为了代码规范化,把各个控件分开来设计,最后放入同一个主界面,便于以后单个控件代码修改调整,一开始的时候遇到一个传值的问题,不同的变量在不同的类下面,怎么样才能实现传值的效果,问了对面一个大佬,用委托的方式解决,下面分享一下代码。
首先单独新建一个类命名为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同理,最后我们看一下实现效果:
完美,数据传过去了!