Изменено выделение WPF-комбинированного списка, показывает последний выбранный элемент вместо текущего - PullRequest
0 голосов
/ 20 октября 2018

это мое поле со списком (код xaml):

 <ComboBox SelectionChanged="ComboBox1_SelectionChanged" Name="ComboBox1" SelectedIndex="1" FontWeight="Bold" FontSize="15" Canvas.Left="133" Canvas.Top="240" Width="135" Height="24">
        <ComboBoxItem Foreground="Red" Name="Red">Red</ComboBoxItem>
        <ComboBoxItem Foreground="Blue" Name="Blue">Blue</ComboBoxItem>
        <ComboBoxItem Foreground="Yellow" Name="Yellow">Yellow</ComboBoxItem>
        <ComboBoxItem Foreground="Pink" Name="Pink">Pink</ComboBoxItem>
        <ComboBoxItem Foreground="Green" Name="Green">Green</ComboBoxItem>
    </ComboBox>

, и это мой код c #:

private void ComboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (ComboBox1.Text != "")
        {
            var converter = new System.Windows.Media.BrushConverter();
            var brush = (Brush)converter.ConvertFromString(ComboBox1.Text);
            rect.Fill = brush;
        }
    }

У меня есть прямоугольник, который я хочу заполнить цветомВыбранный в поле со списком, я также хочу, чтобы цвет по умолчанию для поля со списком был синим, но оба они на самом деле не работают для меня.Текст в поле со списком фактически синий по умолчанию, но я думаю, что сам элемент не выбран, потому что он не распознает его и говорит, что моя строка со списком по умолчанию пуста.Кроме того, цвета моего прямоугольника меняются с задержкой, если я сначала выберу красный, то ничего не произойдет, а затем, если я выберу зеленую секунду, он покажет красный и продолжит работать с такой задержкой.

Кто-нибудь знает, почему?и как это решить?Буду очень признателен.

1 Ответ

0 голосов
/ 20 октября 2018

В конце концов мне удалось решить эту проблему, изменив событие SelectionChanged на событие DropDownClosed.

...