// Client Receives: private void NewMessageReceived(string message) { //write new message in Collection to display in GUI //switch thread to GUI thread to avoid problems App.Current.Dispatcher.Invoke(() => { if (message != null) { string newvalue = "[red]"; string[] toggle = message.Split('x'); if (toggle[1] == "True") { newvalue = "[green]"; } else { newvalue = "[red]"; } aktuelleDaten = "Von Server: Toggle " + toggle[0] + " " + newvalue + " " + toggle[2]; ReceivedHistory.Add(aktuelleDaten); switch (toggle[0]) { case "1": Toggle1Value = !toggle1Value; break; case "2": Toggle2Value = !toggle2Value; break; case "3": Toggle3Value = !toggle3Value; break; case "4": Toggle4Value = !toggle4Value; break; default: break; } RaisePropertyChanged("ReceivedHistory"); } }); }
public MainViewModel() { ReceivedHistory = new ObservableCollection <string>(); ToggleVis = "Visible"; ServerCon = false; ClientCon = false; //Connect as Server Button => Listen ListenBtnClickCmd = new RelayCommand( () => { server = new Server(ip, port, GuiUpdater); ServerCon = true; //ClientCon = false; // unntöig RaisePropertyChanged("ConnectedAsServer"); RaisePropertyChanged("ConnectedAsClient"); }, () => { return(!ServerCon && !ClientCon); } ); //Connect as Client Button => Connect ConnectBtnClickCmd = new RelayCommand(() => { clientCom = new Client(IPAddress.Loopback, port, new Action <string>(NewMessageReceived)); ServerCon = false; ClientCon = true; ToggleVis = "Hidden"; ReceivedHistory = new ObservableCollection <string>(); }, () => { return(!ServerCon && !ClientCon); } ); #region TOGGLE BUTTONS Toggle1Cmd = new RelayCommand( () => { Toggle1Value = !toggle1Value; // Message: string value = Toggle1Value.ToString(); string hms = DateTime.Now.ToString("hh:mm:ss"); string dmy = DateTime.Now.ToString("dd:MM:yyyy"); //string time = "16:45"; string message = ("1x" + value + "x" + hms); ReceivedHistory.Add("Toggle 1 " + value + " " + hms); RaisePropertyChanged("ReceivedHistory"); GuiUpdater(message); }, () => { return(ServerCon); } ); Toggle2Cmd = new RelayCommand( () => { Toggle2Value = !toggle2Value; // Message: string value = Toggle2Value.ToString(); string hms = DateTime.Now.ToString("hh:mm:ss"); string dmy = DateTime.Now.ToString("dd:MM:yyyy"); string message = ("2x" + value + "x" + hms); ReceivedHistory.Add("Toggle 2 " + value + " " + hms); RaisePropertyChanged("ReceivedHistory"); //server.SendMessage(message); GuiUpdater(message); }, () => { return(ServerCon); } ); Toggle3Cmd = new RelayCommand( () => { Toggle3Value = !toggle3Value; // Message: string value = Toggle3Value.ToString(); string hms = DateTime.Now.ToString("hh:mm:ss"); string dmy = DateTime.Now.ToString("dd:MM:yyyy"); string message = ("3x" + value + "x" + hms); ReceivedHistory.Add("Toggle 3 " + value + " " + hms); RaisePropertyChanged("ReceivedHistory"); //server.SendMessage(message); GuiUpdater(message); }, () => { return(ServerCon); } ); Toggle4Cmd = new RelayCommand( () => { Toggle4Value = !toggle4Value; // Message: string value = Toggle4Value.ToString(); string hms = DateTime.Now.ToString("hh:mm:ss"); string dmy = DateTime.Now.ToString("dd.MM.yyyy"); string message = ("4x" + value + "x" + hms); ReceivedHistory.Add("Toggle 4 " + value + " " + dmy); RaisePropertyChanged("ReceivedHistory"); //server.SendMessage(message); GuiUpdater(message); }, () => { return(ServerCon); } ); #endregion }