public void DeleteZone(XDirectionZone directionZone)
		{
			List<XDirectionZone> directionZones = Direction.DirectionZones;
			directionZones.Remove(directionZone);
			var zones = new List<XZone>();
			directionZones.ForEach(x => zones.Add(x.Zone));
			XManager.ChangeDirectionZones(Direction, zones);
			InitializeDependences();
			ServiceFactory.SaveService.GKChanged = true;
		}
		public static void ChangeDirectionZones(XDirection direction, List<XZone> zones)
		{
			foreach (var zone in direction.InputZones)
			{
				zone.Directions.Remove(direction);
				zone.OnChanged();
			}
			direction.InputZones.Clear();
            var oldDirectionZones = new List<XDirectionZone>(direction.DirectionZones);
            direction.DirectionZones.Clear();
            foreach (var zone in zones)
            {
                direction.InputZones.Add(zone);
                var directionZone = new XDirectionZone()
                {
                    ZoneUID = zone.UID,
                    Zone = zone
                };
                var existingDirectionZone = oldDirectionZones.FirstOrDefault(x => x.Zone == zone);
                if (existingDirectionZone != null)
                {
                    directionZone.StateBit = existingDirectionZone.StateBit;
                }
                direction.DirectionZones.Add(directionZone);
                zone.Directions.Add(direction);
                zone.OnChanged();
            }
			direction.OnChanged();
		}
 public DirectionZoneViewModel(XDirectionZone directionZone)
 {
     DirectionZone = directionZone;
 }