C# SelectionChanged事件在进行选择之前激发
因此,我试图在用户选择一个项目后更改组合框的边框颜色。(从红色到绿色/灰色/任何其他颜色) 问题:我运行代码时,事件似乎在用户做出选择之前触发 我的组合框位于多个网格中,并使用ResourceDictionary设置样式(稍后我将显示代码) 由于缺乏更好的知识,我参加了一个SelectionChanged活动 XAML组合框:C# SelectionChanged事件在进行选择之前激发,c#,xaml,combobox,C#,Xaml,Combobox,因此,我试图在用户选择一个项目后更改组合框的边框颜色。(从红色到绿色/灰色/任何其他颜色) 问题:我运行代码时,事件似乎在用户做出选择之前触发 我的组合框位于多个网格中,并使用ResourceDictionary设置样式(稍后我将显示代码) 由于缺乏更好的知识,我参加了一个SelectionChanged活动 XAML组合框: <ComboBox Grid.Column="1" Grid.Row="1" Style="
<ComboBox Grid.Column="1"
Grid.Row="1"
Style="{StaticResource FormComboBox}"
x:Name="comboAnrede"
SelectionChanged="ComboBox_SelectionChanged" >
<ComboBoxItem Content="Keine Angabe"
IsSelected="True"/>
<ComboBoxItem Content="Dr." />
<ComboBoxItem Content="Prof." />
<ComboBoxItem Content="Prof. Dr." />
<ComboBoxItem Content="Mag." />
<ComboBoxItem Content="Ing." />
<ComboBoxItem Content="Ba." />
</ComboBox>
资源字典
<Style TargetType="ComboBox" x:Key="FormComboBox">
<Setter Property="Margin" Value="10,0" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="BorderThickness" Value="0,0,0,1" />
</Style>
有人知道我如何让它等待实际的选择吗?
(如果可能的话,您能否尝试向我解释一下,如果以及何时我可以将同一事件重新用于其他组合框?当组合框最初加载时,没有选择任何项目。然后根据IsSelected属性将所选项目设置为“Keine Angabe”。这将导致选择更改事件触发。如果删除它,您将看到事件未被激发 通过将发送方强制转换为组合框类型,可以对其他组合框重复使用该方法:请参见下文:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var combobox = sender as ComboBox;
combobox.BorderBrush = new SolidColorBrush(new Color { R = 204, G = 204, B = 204, A = byte.MaxValue });
}
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var combobox = sender as ComboBox;
combobox.BorderBrush = new SolidColorBrush(new Color { R = 204, G = 204, B = 204, A = byte.MaxValue });
}