如何使用MVVM模型开始实现串口控制?

时间:2011-10-09 15:04:14

标签: c# wpf design-patterns mvvm

我开始使用MVVM模型创建这个项目。但我不知道如何使用工具栏实现它。

我需要一点帮助。这是我正在观看的网站网站: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

我认为最后一个是模型,我不确定我是否做得很好:

public class Port : INotifyPropertyChanged, IDataErrorInfo
{
    private SerialPort _serialPort;

    public Port()
    {
        _serialPort = new SerialPort();
    }

    public string PortName
    {
        get { return _serialPort.PortName; }
        set
        {
            _serialPort.PortName = value;
            OnPropertyChanged("PortName");
        }
    }

    public int BaudRate
    {
        get { return _serialPort.BaudRate; }
        set
        {
            _serialPort.BaudRate = value;
            OnPropertyChanged("BaudRate");
        }
    }

    public Parity Parity
    {
        get { return _serialPort.Parity; }
        set
        {
            _serialPort.Parity = value;
            OnPropertyChanged("Parity");
        }
    }

    public int DataBits
    {
        get { return _serialPort.DataBits; }
        set
        {
            _serialPort.DataBits = value;
            OnPropertyChanged("PortDataBits");
        }
    }

    public StopBits StopBits
    {
        get { return _serialPort.StopBits; }
        set
        {
            _serialPort.StopBits = value;
            OnPropertyChanged("PortStopBits");
        }
    }

    public Handshake Handshake
    {
        get { return _serialPort.Handshake; }
        set
        {
            _serialPort.Handshake = value;
            OnPropertyChanged("PortHandshake");
        }
    }

    public string[] AvailablePortNames
    {
        get { return SerialPort.GetPortNames(); }
    }

    #region IDataErrorInfo Members

    string IDataErrorInfo.Error { get { return null; } }

    string IDataErrorInfo.this[string propertyName]
    {
        get { return this.GetValidationError(propertyName); }
    }

该程序包括用户必须设置和配置并打开它。关于如何使用此模型实现它,我需要一点帮助。非常感谢。

enter image description here

1 个答案:

答案 0 :(得分:3)

您需要一个ViewModel,其中包含1个SerialPort和一些用于波特率,奇偶校验选项等的列表。

然后,您可以使用ComboBox,将ItemsSource绑定到列表,将SelectedItem绑定到SerialPort属性。