Beispiel #1
0
        private void Settins_ProxiesCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
            {
                foreach (var el in e.NewItems)
                {
                    if (el is IChannel ch)
                    {
                        AddTransmitToItems(ch, false);
                    }
                }
            }
            else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
            {
                foreach (var el in e.OldItems)
                {
                    if (el == null)
                    {
                        continue;
                    }

                    TransmitToItems.RemoveAll(x => x.Channel == (IChannel)el);
                }
            }
            else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Reset)
            {
                TransmitToItems.Clear();
            }
            else
            {
                throw new NotImplementedException();
            }
        }
Beispiel #2
0
        private void AddTransmitToItems(IChannel el, bool isRealChannels)
        {
            var viewData = new TransmitToViewData(isRealChannels)
            {
                IsTransmit = false, DescriptionKey = $"#{el.ToString()}NavMenu", Channel = el
            };

            viewData.PropertyChanged += TransmitToViewDataIsTransmit_PropertyChanged;
            _context.Send((s) =>
            {
                TransmitToItems.Add(viewData);
            }, null);
        }
Beispiel #3
0
        private void Device_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName != "Device")
            {
                return;
            }

            //create ViewData for  transmitable channels
            _context.Send((s) =>
            {
                //remove real channels
                TransmitToItems.RemoveAll(x => x.IsRealChannel);
            }, null);
            TransmitToSelectedChannels = null;
            if (Settings.Instance.Device != null && Settings.Instance.Device.IsConnected && Settings.Instance.Device.Channels != null)
            {
                Settings.Instance.Device.IsConnectedChanged += Device_IsConnectedChanged;
                AddTransmitToItems(Settings.Instance.Device.Channels, true);
            }
        }
Beispiel #4
0
 private void TransmitToViewDataIsTransmit_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     if ((e.PropertyName == "IsTransmit") && (sender is TransmitToViewData viewData) && (TransmitToItems.Contains(viewData)))
     {
         if (viewData.IsTransmit)
         {
             if (TransmitToSelectedChannels == null)
             {
                 TransmitToSelectedChannels = viewData.Transmit;
             }
             else
             {
                 TransmitToSelectedChannels += viewData.Transmit;
             }
         }
         else
         {
             try
             {
                 TransmitToSelectedChannels -= viewData.Transmit;
             }
             catch { }
         }
     }
 }