Exemplo n.º 1
0
        private void OnBitChanged(BitItemModel bitModel, bool newValue)
        {
            var bit_vector = BitVector;

            if (bit_vector is Collections.BitVector32 vector32)
            {
                if (vector32[bitModel.BitIndex] != newValue)
                {
                    vector32[bitModel.BitIndex] = newValue;
                    BitVector = vector32;
                }
            }
            else if (bit_vector is Collections.BitVector64 vector64)
            {
                if (vector64[bitModel.BitIndex] != newValue)
                {
                    vector64[bitModel.BitIndex] = newValue;
                    BitVector = vector64;
                }
            }
        }
Exemplo n.º 2
0
        private void OnBitChanged(BitItemModel bitModel, bool newValue)
        {
            var bit_vector = BitVector;

            if (bit_vector == null)
            {
                return;
            }

            int bit_index = bitModel.BitIndex;

            if (bit_index >= bit_vector.Length)
            {
                throw new ArgumentOutOfRangeException(string.Format(Util.InvariantCultureInfo,
                                                                    "Vector length is {0} which is less than the number of bits needed to represent one or more items. #{1} can't be updated ({2})",
                                                                    bit_vector.Length, bit_index, bitModel.DisplayName));
            }
            else if (bit_vector[bit_index] != newValue)
            {
                bit_vector[bit_index] = newValue;
            }
        }
Exemplo n.º 3
0
        private static void OnBitsUserInterfaceSourcePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var ctrl   = (BitVectorControl)d;
            var source = (IBitVectorUserInterfaceData)e.NewValue;

            var newBitItems = new ObservableCollection <BitItemModel>();

            if (source != null)
            {
                for (int bit_index = 0; bit_index < source.NumberOfBits; bit_index++)
                {
                    var model = new BitItemModel
                    {
                        BitIndex    = bit_index,
                        DisplayName = source.GetDisplayName(bit_index),
                        ToolTip     = source.GetDescription(bit_index),
                        IsVisible   = source.IsVisible(bit_index)
                    };
                    newBitItems.Add(model);
                }
            }

            ctrl.BitItems = newBitItems;
        }