internal override NativeElementData ToNative()
        {
            NativeBarcodeData native = null;
#if __ANDROID__
            native = new NativeBarcodeData(ElementId, BarcodeValue, BarcodeType.ToNative());
#elif __IOS__
            Foundation.NSError error = null;
            native = NativeBarcodeData.Create((ushort)ElementId, BarcodeType.ToNative(), BarcodeValue, out error);
#elif WINDOWS_PHONE_APP
            native = new NativeBarcodeData(BarcodeType.ToNative(), ElementId, BarcodeValue);
#endif
            return native;
        }
        internal override NativeElementData ToNative()
        {
            NativeBarcodeData native = null;

#if __ANDROID__
            native = new NativeBarcodeData(ElementId, BarcodeValue, BarcodeType.ToNative());
#elif __IOS__
            Foundation.NSError error = null;
            native = NativeBarcodeData.Create((ushort)ElementId, BarcodeType.ToNative(), BarcodeValue, out error);
#elif WINDOWS_PHONE_APP
            native = new NativeBarcodeData(BarcodeType.ToNative(), ElementId, BarcodeValue);
#endif
            return(native);
        }
        // todo max data length ?

#if __ANDROID__ || __IOS__ || WINDOWS_PHONE_APP
        internal BarcodeData(NativeBarcodeData native)
            : base(native)
        {
            BarcodeType = native.BarcodeType.FromNative();
            BarcodeValue = native.Barcode;
        }
        // todo max data length ?

#if __ANDROID__ || __IOS__ || WINDOWS_PHONE_APP
        internal BarcodeData(NativeBarcodeData native)
            : base(native)
        {
            BarcodeType  = native.BarcodeType.FromNative();
            BarcodeValue = native.Barcode;
        }