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)); } }); }
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)); } }); }