none
Event Übergabe aus externer Xaml RRS feed

  • Frage

  • Hallo,
    ich versuche in meinem Programm ein mit xaml mit

     

    Me.Content = XamlReader.Load(MyFileStream) einzulesen, das soweit auch fünktioniert.
    In diesem Xaml ist ein Menu hinterlegt.

    Nun möchte ich, dass wenn ein MenuItem angeklickt wird, ein entsprechendes Event übergeben wird.

    Wie bekomme ich in meinem Content mit, wann und welcher Menupunkt angeklickt wurde?

    Gruß und Danke

    Dienstag, 9. Juni 2009 13:06

Antworten

  • Hallo McGhost,

    spontan fällt mir da folgendes ein: Du kannst dem MenuItem einen Namen geben und nach dem Laden dieses MenuItem suchen und dich auf das Click Erreignis registrieren.


    C#:

    public partial class Window3 : Window
    	{
    		public Window3()
    		{
    			InitializeComponent();
    
    			string contextMenu = @"<ContextMenu 
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
    <MenuItem x:Name='_menuItem1' Header='Test Menu Item'>
    </MenuItem></ContextMenu>";
    			
    			StringReader stringReader = new StringReader(contextMenu);
    			this.ContextMenu = XamlReader.Load(new XmlTextReader(stringReader)) as ContextMenu;
    			
    			MenuItem menuItem1 = (MenuItem)this.ContextMenu.FindName("_menuItem1");
    			menuItem1.Click += new RoutedEventHandler(menuItem1_Click);
    		}
    
    		void menuItem1_Click(object sender, RoutedEventArgs e)
    		{
    			this.Background = Brushes.Red;
    		}
    	}


    Hope this helps.

    Dienstag, 9. Juni 2009 21:13

Alle Antworten

  • Hallo McGhost,

    spontan fällt mir da folgendes ein: Du kannst dem MenuItem einen Namen geben und nach dem Laden dieses MenuItem suchen und dich auf das Click Erreignis registrieren.


    C#:

    public partial class Window3 : Window
    	{
    		public Window3()
    		{
    			InitializeComponent();
    
    			string contextMenu = @"<ContextMenu 
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
    <MenuItem x:Name='_menuItem1' Header='Test Menu Item'>
    </MenuItem></ContextMenu>";
    			
    			StringReader stringReader = new StringReader(contextMenu);
    			this.ContextMenu = XamlReader.Load(new XmlTextReader(stringReader)) as ContextMenu;
    			
    			MenuItem menuItem1 = (MenuItem)this.ContextMenu.FindName("_menuItem1");
    			menuItem1.Click += new RoutedEventHandler(menuItem1_Click);
    		}
    
    		void menuItem1_Click(object sender, RoutedEventArgs e)
    		{
    			this.Background = Brushes.Red;
    		}
    	}


    Hope this helps.

    Dienstag, 9. Juni 2009 21:13
  • Hallo,

    hast du dein Problem lösen können?
    Freitag, 19. Juni 2009 21:18
  • Hallo McGhost,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.

    Grüße,
    Robert

    Montag, 10. August 2009 13:17
    Moderator