public ForeignDevicePortSettings(ForeignDevicePortProcess process)
        {
            _process = process;

            _name = new TextBox();
            _name.Bind(
                tb => tb.Text,
                _process,
                proc => proc.Name,
                DualBindingMode.TwoWay);

            _processId = new NumericUpDown();
            _processId.Bind(
                nud => nud.Value,
                _process,
                proc => proc.ProcessId,
                DualBindingMode.TwoWay);

            _localHost = new TextBox();
            _localHost.Bind(
                tb => tb.Text,
                _process,
                proc => proc.LocalHost,
                DualBindingMode.TwoWay);

            _localPort = new NumericUpDown();
            _localPort.Bind(
                nud => nud.Value,
                _process,
                proc => proc.LocalPort,
                DualBindingMode.TwoWay);

            _bbmdHost = new TextBox();
            _bbmdHost.Bind(
                tb => tb.Text,
                _process,
                proc => proc.BbmdHost,
                DualBindingMode.TwoWay);

            _bbmdPort = new NumericUpDown();
            _bbmdPort.Bind(
                nud => nud.Value,
                _process,
                proc => proc.BbmdPort,
                DualBindingMode.TwoWay);

            this.BeginVertical();
            this.AddRow(new Label() { Text = Constants.ProcessNameLabel }, _name);
            this.AddRow(new Label() { Text = Constants.ProcessIdLabel }, _processId);
            this.EndVertical();

            this.BeginVertical();
            this.AddRow(new Label() { Text = Constants.LocalHostLabel }, _localHost,
                new Label() { Text = Constants.LocalPortLabel }, _localPort);
            this.AddRow(new Label() { Text = Constants.BbmdHostLabel }, _bbmdHost,
                new Label() { Text = Constants.BbmdPortLabel }, _bbmdPort);
            this.EndVertical();

            this.AddRow();
        }