我想在一个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" />