c# - WPF-combobox selection changed 显示最后选择的项目而不是当前项目
问题描述
这是我的组合框(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;
}
}
我有一个矩形,我想填充组合框中选择的颜色,我还希望组合框上的默认颜色为蓝色,但这两种颜色都不适合我。组合框上的文本默认情况下实际上是蓝色的,但我认为项目本身没有被选中,因为它无法识别它并告诉我我的组合框字符串默认为空。此外,我的矩形的颜色会延迟变化,如果我首先选择红色 - 什么都不会发生,然后如果我选择绿色第二个它会显示红色并且它会一直延迟。
有谁知道为什么?以及如何解决?我将不胜感激。
解决方案
最后,我设法通过使用 DropDownClosed 事件更改 SelectionChanged 事件来解决这个问题。
推荐阅读
- c - 阻塞模式下的 ALSA 'snd_pcm_writei' 行为
- python - 为什么我会收到“TypeError:必须是 str,而不是 float”错误。我试图转换它
- javascript - 是否可以链接价值设定者?
- javascript - Vue.js 使用 v-for 单击时切换类
- javascript - 处理 SelectDialogBox 的 CONFIRM 事件的行为
- php - 注入问题 - 缺少父构造函数调用
- testflight - 如何解决 Apple TestFlight 中的“出现问题”错误
- python - 熊猫区分两个数据框
- php - 如何在 laravel 5.4 中使用多重关系
- c++ - 抽象父类调用子的纯虚方法实现(c++)