WPF多个页面绑定同一个全局变量

插件中绑定主程序的数据,首先在插件中新建一个全局变量

public class MeteringData
    {
        //private MeteringDeviceInfo meteringDeviceInfo = new MeteringDeviceInfo();
        /// <summary>
        /// 全局计量数据
        /// </summary>
        public static MeteringDeviceInfo GlobalMeteringDevice;
        //{
        //    get { return meteringDeviceInfo; }
        //    set
        //    {
        //        meteringDeviceInfo = value;
        //    }
        //}
    }

  然后在插件入口界面的后台初始化该全局变量,排除空引用的bug

public UserControl1()
        {
            InitializeComponent();
            if (MeteringData.GlobalMeteringDevice == null)
            {
                MeteringData.GlobalMeteringDevice = new MeteringDeviceInfo();
                MeteringData.GlobalMeteringDevice.ProjectGuid = CommUtil.project.GUID;
            }
        }

然后就可以在后台代码和界面中使用了

MeteringData.GlobalMeteringDevice.ProjectGuid = CommUtil.project.GUID;
MeteringData.GlobalMeteringDevice.MeteringModel = CommUtil.project.ProjectModel;
MeteringData.GlobalMeteringDevice.ConnTel = "18500000000";

在界面中绑定的时候首先得添加引用,第一个是主程序的数据结构类,第二个是全局变量类

xmlns:gtp="clr-namespace:GTP.Model.Projectinfo;assembly=GTP.Model"
xmlns:dataSour="clr-namespace:GeneriteMetering"

然后就可以直接在界面中绑定了

<TextBox x:Name="connTel" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Text="{Binding ConnTel,Source={x:Static dataSour:MeteringData.GlobalMeteringDevice},Mode=TwoWay}"/>

posted on 2020-11-07 10:36  清修客  阅读(2642)  评论(0)    收藏  举报

导航