private void btnConnect_Click(object sender, RoutedEventArgs ea) { isConnected = false; btnConnect.IsEnabled = false; string name = cbSerialPort.Text; int speed = int.Parse(cbSpeed.Text); Parity parity = (Parity)Enum.Parse(typeof(Parity), cbParity.Text); LogAdd($"Connect: {name}:{speed}, {parity} - ", LogFlags.noReturn); try { isConnected = serialPort.ConnectTo(name, speed, parity); } catch (Exception e) { LogAdd(e.Message, LogFlags.noTime); } //если подключен последовательный порт, то кнопка "подключить" остается не доступна if (!(serialPort.IsOpen)) { btnConnect.IsEnabled = true; //начинаем слушать событие } else { try { serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); } catch (Exception e) { LogAdd(e.Message, LogFlags.noTime); } } Mouse.OverrideCursor = null; if (isConnected) { LogAdd("Ok", LogFlags.noTime); } }