SelectionChanged事件在选择之前触发

时间:2016-04-22 12:44:35

标签: c# xaml combobox

因此我尝试更改用户选择了项目的ComboBox AFTER 的边框颜色。 (从红色到绿色/灰色/ AnyOtherColor)

问题: Wenn我运行代码,事件好像是 BEFORE 用户做出了选择。

我的ComboBox在多个网格中并且使用ResourceDictionary进行样式化(我将在一秒内显示代码)。

由于缺乏更好的知识,我参加了一次SelectionChanged活动。

XAML ComboBox:

<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>

代码背后

 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        comboAnrede.BorderBrush = new SolidColorBrush(new Color { R = 204, G = 204, B = 204, A = byte.MaxValue });
    }

资源字典

<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>

有谁知道如何让它等待实际选择? (如果可能的话,你可以尝试向我解释我是否以及何时可以为其他ComboBox重用同一个事件?)

1 个答案:

答案 0 :(得分:1)

最初加载组合框时,不会选择任何项目。然后它将所选项目设置为&#34; Keine Angabe&#34;基于IsSelected属性。然后,这会导致选择更改事件触发。如果删除它,您将看到事件未被触发。

您可以通过将发件人转换为组合框类型来重复使用该方法用于其他组合框:请参阅下文:

/