使用可能なCOMポートのリストを表示するフォームにComboBoxがあります。動的コンボボックスのComboBoxアイテムのテキストスタイルを変更します。
[XAML]
<Window x:Class="test1.MainWindow" x:Name="cbtest1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="200">
<Grid>
<StackPanel Margin="40">
<ComboBox x:Name="com_ports" ItemsSource="{Binding PortsList}"/>
</StackPanel>
</Grid>
</Window>
そして
今using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace test1
{
public partial class MainWindow : Window
{
public MainWindow()
{
var ports = new List<string>(System.IO.Ports.SerialPort.GetPortNames());
var cb = new ObservableCollection<ComboBoxItem>();
foreach (var x in ports)
{
cb.Add(new ComboBoxItem { Content = x });
var p = new System.IO.Ports.SerialPort(x);
if (p.IsOpen)
{
// Bold that item in the combobox
}
}
PortsList = cb;
this.DataContext = this;
InitializeComponent();
}
public ObservableCollection<ComboBoxItem> PortsList { get; set; }
}
}
の背後にあるコード、私はコードにコメントしているように、私はコンボボックスが開いを表示する:ここで私が書いたコードですポートは太字です。私は何をすべきか分かりません。私はSOとGoogleでしばらく検索しましたが、運がなかったのです。誰かが私にこのことを単に説明してくれれば感謝しています - WPF/C#noob。
あなたがtrueに、のIsOpenのように、ComboBoxItemモデルにいくつかのプロパティを設定することができます。そして、外観を変更するには、xamlスタイルで** [datatrigger](https://msdn.microsoft.com/en-us/library/system.windows.datatrigger(v = vs.110).aspx)**を使用します。 – 3615
@ 3615 noobとして、私は本当に答えを感謝します。私はしばらくの間、グーグルグーグルをしていましたが、今私はすべての苦しみから私を救うために何かを頼みます。 –