1. 程式人生 > 實用技巧 >WPF多個頁面繫結同一個全域性變數

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}"/>