使用SelectionChanged事件的ComboBox MultiBinding

时间:2018-04-07 16:37:35

标签: wpf

我想在一个ComboBox上触发一个SelectionChanged事件时,从DropDown列表中选择了一个Popup应该打开的列表。我可以很容易地在代码中执行此操作但我想纯粹在XAML中执行此操作。

这是一个简单的例子。

<Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1" Title="MainWindow" Width="525" Height="350">
    <Grid>
        <ComboBox x:Name="MyComboBox" Height="30" Width="200">
            <ComboBox.Triggers>
                <EventTrigger RoutedEvent="Selector.SelectionChanged">
                    <BeginStoryboard>
                        <Storyboard>
                            <BooleanAnimationUsingKeyFrames Storyboard.TargetName="MyPopup" Storyboard.TargetProperty="IsOpen">
                                <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True" />
                            </BooleanAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </ComboBox.Triggers>
        </ComboBox>
        <Popup x:Name="MyPopup">
            <Grid Width="200" Height="200" Background="Yellow" />
        </Popup>
    </Grid>
</Window>

在Window Loaded事件中,我有这个简单的代码将数据加载到ComboBox的ItemsSource中:

VB.Net:

Private Sub MyComboBox_Loaded(sender As Object, e As RoutedEventArgs) Handles MyComboBox.Loaded
   MyComboBox.ItemsSource = New List(Of Integer)() From {1, 2, 3, 4, 5}
End Sub

C#:

private void MyComboBox_Loaded(object sender, RoutedEventArgs e)
{
    MyComboBox.ItemsSource = new List<int> {1,2,3,4,5};
}

基本上我想回答两个问题:

1)。有选择吗?是

2)。如果有的话已经选择了4个?是

如果两个条件都已满足,则打开弹出窗口

到目前为止我所做的是回答第一个问题。但是,如何在MultiBinding场景中回答这两个问题?

我希望可以这样做:

<Setter Property="IsSelectionChanged" Value="true" />

0 个答案:

没有答案