Example #1
0
        public ReceiverViewModel(Receiver dataItem)
        {
            Closable     = true;
            DataItem     = dataItem;
            DisplayName  = DataItem.DisplayName;
            PortNumber   = DataItem.PortNumber;
            ReceiverType = DataItem.ReceiverType;
            IpAddress    = DataItem.IpAddress;
            Broadcast    = DataItem.Broadcast;
            Encoding     = DataItem.Encoding;

            SaveCommand          = new TaskCommand(SaveExecute, d => !IsActive && CanSave);
            ToggleCommand        = new TaskCommand(ToggleExecute, d => !CanSave || IsActive);
            ClearMessagesCommand = new TaskCommand(ClearMessagesExecute, d => Messages.Count > 0);
            Encodings            = new ObservableCollection <SelectorOption <Encoding> >(EncodingOptionsFactory.GetAll());

            WhenPropertyChanged.Subscribe(name =>
            {
                if (new[] { nameof(DisplayName), nameof(PortNumber), nameof(ReceiverType), nameof(IpAddress), nameof(Broadcast), nameof(Encoding) }.Contains(name))
                {
                    CanSave = true;
                }

                if (name == nameof(IsActive))
                {
                    OnPropertyChanged(nameof(ToggleMessage));
                }
            });
        }
Example #2
0
        public TransmitterViewModel(Transmitter dataItem, IDialogService dialogService, MainViewModel mainViewModel)
        {
            DataItem       = dataItem;
            _dialogService = dialogService;
            _mainViewModel = mainViewModel;

            Closable        = true;
            DisplayName     = DataItem.DisplayName;
            PortNumber      = DataItem.PortNumber;
            TransmitterType = DataItem.TransmitterType;
            Broadcast       = DataItem.Broadcast;
            IpAddress       = DataItem.IpAddress;
            Encoding        = DataItem.Encoding;

            SaveCommand       = new TaskCommand(SaveExecute, d => !IsActive && CanSave);
            ToggleCommand     = new TaskCommand(ToggleExecute, d => !CanSave || IsActive);
            NewMessageCommand = new TaskCommand(NewMessageExecute);
            ClearLogCommand   = new TaskCommand(ClearLogExecute, d => Messages.Count > 0);
            Encodings         = new ObservableCollection <SelectorOption <Encoding> >(EncodingOptionsFactory.GetAll());

            WhenPropertyChanged.Subscribe(name =>
            {
                if (new[] { nameof(DisplayName), nameof(PortNumber), nameof(TransmitterType), nameof(Broadcast), nameof(IpAddress), nameof(Encoding) }.Contains(name))
                {
                    CanSave = true;
                }

                if (name == nameof(IsActive))
                {
                    OnPropertyChanged(nameof(ToggleMessage));
                }
            });
        }