開いているシリアルポートをアイテムとして含むコンボボックスが必要です。ただし、シリアルポートが変更されると自動的に更新されます。
私のアプローチはこれです:
Xamlで次のようなコンボボックスを作成します。
<ComboBox Height="23" HorizontalAlignment="Left" Margin="87,35,0,0" Name="comboBox1" VerticalAlignment="Top" Width="147" ContextMenuOpening="comboBox1_ContextMenuOpening" />
トラフポートをループしてcomboBoxに追加するメソッドを作成します。
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イベントで呼び出します(コンボボックスをクリックしてアイテムを選択するたびに-ポート、更新します)
注:最初にcomboBoxアイテム(存在する場合)をクリアし、文字列配列についても同じですが、更新されません。アイテムは、このメソッドの最初の実行時のものです。
私が試したのは、ObservableCollection、文字列、配列ですが、運がありません。私がこのサイトで見つけたほとんどの情報。ポートが少ないので、コレクションやリストは本当に必要ないと思います。アイテムを直接追加するだけです。
ところで、管理者はこの投稿を編集できますか?テキスト形式が適切かどうかはわかりません。