Пример #1
0
        private static void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            UiHexControl self = (UiHexControl)d;

            byte[] value = e.NewValue as byte[];

            lock (self._lock)
            {
                if (self._isInternalCall)
                {
                    return;
                }

                FixedByteProvider byteProvider = null;
                if (value == null)
                {
                    self._hexBox.Height = 0;
                }
                else
                {
                    byteProvider        = new FixedByteProvider((byte[])e.NewValue);
                    self._hexBox.Height = 70;
                }

                self._hexBox.ByteProvider = byteProvider;
                if (byteProvider != null)
                {
                    byteProvider.Changed += (s, a) => OnValueEdited(self, byteProvider);
                }
            }
        }
Пример #2
0
 private static void OnValueEdited(UiHexControl self, FixedByteProvider byteProvider)
 {
     Monitor.Enter(self._lock);
     try
     {
         self._isInternalCall = true;
         self.Value           = byteProvider.Bytes.ToArray();
         self._isInternalCall = false;
     }
     finally
     {
         Monitor.Exit(self._lock);
     }
 }