我想要一个包含开放串行端口作为项目的组合框。但是当串口修改时它会自动更新。
我的方法是这样的:
在 Xaml 中创建一个组合框,如下所示:
<ComboBox Height="23" HorizontalAlignment="Left" Margin="87,35,0,0" Name="comboBox1" VerticalAlignment="Top" Width="147" ContextMenuOpening="comboBox1_ContextMenuOpening" />
创建一个循环槽端口并将它们添加到组合框的方法:
public string[] portsManual; public void adaugaPorturi() { if (comboBox1.Items.Count > 0) { comboBox1.Items.RemoveAt(0); } comboBox1.Items.Add("Select port"); comboBox1.SelectedItem = "Select port"; portsManual = SerialPort.GetPortNames(); foreach (string port in portsManual) { comboBox1.Items.Add(port); } comboBox1.Items.Refresh(); Array.Clear(portsManual, 0, portsManual.Length); }
在 window.load 调用这个方法(这样它可以有一些东西 - 端口随即打开)并在 ContextMenuOpening 事件中调用它(每当我单击组合框来选择一个项目 - 一个端口,刷新)
注意:我在开始时清除了组合框项目(如果有的话),对于字符串数组也是如此,但它没有更新,这些项目仍然是该方法第一次运行时的项目!
我尝试过:ObservableCollection、字符串和数组都没有运气。我在这个网站上找到的最多信息。我在想,因为只有几个端口,我真的不需要集合或列表。我只是直接添加项目。
顺便说一句,管理员可以编辑这篇文章吗?我不确定文本格式是否良好。