【发布时间】:2013-11-19 07:49:27
【问题描述】:
我想要一个包含开放串行端口作为项目的组合框。但是当串口修改时它会自动更新。
我的做法是这样的:
-
在 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、字符串和数组都没有运气。我在这个网站上找到的最多信息。我在想,因为只有几个端口,我真的不需要集合或列表。我只是直接添加项目。
顺便说一句,管理员可以编辑这篇文章吗?我不确定文本格式是否好。
【问题讨论】: