WPFアプリケーションを作成しています。ボタンをクリックするたびにページを表示したい。
<ItemsControl ItemsSource="{Binding Path=DashBoardApps}" VerticalAlignment="Bottom" HorizontalAlignment="Center" Name="Abc">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Controls:FishEyeControl />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button MouseDown="Button_MouseDown">
<Image Source="{Binding Path=ApplicationImage}" Width="32" Height="32"/>
</Button>
<TextBlock x:Name="txtAppName" Text="{Binding Path=ApplicationName}" TextAlignment="Center" Visibility="Hidden" FontSize="7px" Foreground="#eff7ff" VerticalAlignment="Center"/>
</StackPanel>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="txtAppName" Property="Visibility" Value="Visible" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
全部で6つのボタンがあります。ボタンをクリックすると、ページを表示したいです(ボタンごとに異なるページ)。背後にあるコードでは、私はこのようなことをしました
private void Button_MouseDown(object sender, MouseButtonEventArgs e)
{
var s = sender as ItemsControl;
if (s == Abc.Items.GetItemAt(1))//if it is the first button. Not sure if it is right
{
//Code to display page
}
}
どのボタンがイベントを生成したか知りたいです。のように、最初のボタンがクリックされた場合は、page1を表示する必要があります。そこで、GetItemAt()
関数を使って最初のボタンがクリックされたかどうかを確認してみました(最初のページを表示するため)。しかし、それは機能せず、このアプローチが正しいかどうかはわかりません。
PS簡単に言うと、どのボタンがイベントを生成したか知りたいのですが、これはインデックスを使用して実行できますか。もしそうなら、どのように?親切に助けて