Mam MenuItem, którego ItemsSource jest databound do prostej listy ciągów znaków, wyświetla się poprawnie, ale ja walczę, aby zobaczyć, jak mogę obsługiwać zdarzenia kliknięcia dla nich!Jak obsługiwać zdarzenia kliknięcia w menu związanym z danymi w WPF
Oto prosta aplikacja, która pokazuje go:
<Window x:Class="WPFDataBoundMenu.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Menu>
<MenuItem Header="File" Click="MenuItem_Click" />
<MenuItem Header="My Items" ItemsSource="{Binding Path=MyMenuItems}" />
</Menu>
</Grid>
using System.Collections.Generic;
using System.Windows;
namespace WPFDataBoundMenu
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public List<string> MyMenuItems { get; set;}
public Window1()
{
InitializeComponent();
MyMenuItems = new List<string> { "Item 1", "Item 2", "Item 3" };
DataContext = this;
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("how do i handle the other clicks?!");
}
}
}
Dziękujemy!
Chris.
Byłoby jeszcze doprowadzić do centralnego przewodnika, który przełącza się na wartości SomeProperty. prawda? – Gishu
Tak, zgadza się. W rzeczywistości parametr nie jest obowiązkowy. Można utworzyć rozgałęzienie na podstawie instancji MenuItem, ale okazało się, że często jest wymagana konkretna część danych dla każdego elementu menu. na przykład. rozważ najnowsze pozycje menu pliku. Ważną informacją jest ścieżka do pliku. –
Gdy to przetestuję, polecenie zostanie uruchomione po kliknięciu lewym i prawym przyciskiem myszy. Jak ustalić, który przycisk został naciśnięty w poleceniu? – keft