Click here to Skip to main content
       

Silverlight / WPF

 
AnswerRe: WPF Tab Styling Question #2 PinprotectorPete O'Hanlon1-Jan-13 9:48 
GeneralRe: WPF Tab Styling Question #2 PinmemberKevin Marois1-Jan-13 9:55 
GeneralRe: WPF Tab Styling Question #2 PinprotectorPete O'Hanlon1-Jan-13 9:56 
GeneralRe: WPF Tab Styling Question #2 PinmemberKevin Marois1-Jan-13 10:06 
GeneralRe: WPF Tab Styling Question #2 PinmentorWayne Gaylard1-Jan-13 23:00 
GeneralRe: WPF Tab Styling Question #2 PinprotectorPete O'Hanlon1-Jan-13 23:08 
GeneralRe: WPF Tab Styling Question #2 PinmemberKevin Marois2-Jan-13 15:41 
GeneralRe: WPF Tab Styling Question #2 PinprotectorPete O'Hanlon2-Jan-13 21:05 
GeneralRe: WPF Tab Styling Question #2 PinmemberKevin Marois2-Jan-13 21:40 
QuestionWPF TabItem Styling Question PinmemberKevin Marois30-Dec-12 11:16 
AnswerRe: WPF TabItem Styling Question PinprotectorPete O'Hanlon30-Dec-12 11:40 
GeneralRe: WPF TabItem Styling Question PinmemberKevin Marois30-Dec-12 15:16 
QuestionList Item Fore & Back Colors PinmemberKevin Marois29-Dec-12 7:52 
QuestionMVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberMember 137073829-Dec-12 1:58 
<pre lang="text">
 

1.How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically?
2. How to set its CommandParameter?
 
//----------------------------------
//MainWindowView.xaml
//----------------------------------
 
<Window x:Class="MVVM.Views.MainWindowView"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"           
            xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
            xmlns:vm="clr-namespace:MVVM.ViewModels"
            Title="MainView" Height="354" Width="520">
     
      <Window.DataContext>
            <vm:MainWindowViewModel/>
      </Window.DataContext>
     
      <Grid>
           
            <!--In this ListBox, the MenuItem command can not be called-->
            <ListBox Height="252" HorizontalAlignment="Left" Margin="12,51,0,0" Name="listBox1" VerticalAlignment="Top" Width="201"
                        ItemsSource="{Binding Path=TestItems}">
                 
                  <ListBox.ItemTemplate>
                       
                        <DataTemplate>
                              <TextBlock Text="{Binding}" Width="150">
                                    <TextBlock.ContextMenu>
                                          <ContextMenu>
                                                <MenuItem Header="Call Command1"   >
                                                      <i:Interaction.Triggers>
                                                            <i:EventTrigger EventName="Click">
                                                                  <i:InvokeCommandAction Command="{Binding Command1}" CommandParameter="???"/><!--here the Command1 not be called-->
                                                            </i:EventTrigger>                                                            <!--how to set command parameter to this ListBoxItem displaying text?-->
                                                      </i:Interaction.Triggers>
                                                </MenuItem>
                                          </ContextMenu>
                                    </TextBlock.ContextMenu>
                              </TextBlock>                                                           
                        </DataTemplate>
                  </ListBox.ItemTemplate>                 
            </ListBox>
           
            <!--In this ListBox, the menuitem command can be called,
            but the command parameter can not be set correctly-->
            <ListBox Height="252" HorizontalAlignment="Left" Margin="230,51,0,0" Name="listBox2" VerticalAlignment="Top" Width="229"
                           SelectedItem="{Binding SelectedText,Mode=OneWayToSource}">
                  <ListBoxItem>
                        <TextBlock Text="item1" Name="tb" />        
                        <ListBoxItem.ContextMenu>
                              <ContextMenu>
                                    <MenuItem Header="Call Comand1">
                                          <i:Interaction.Triggers>
                                                <i:EventTrigger EventName="Click">
                                                     
                                                      <!--this one can be called correctly,
                                                         but the command parameter can not be set correctly-->                                
                                                      <i:InvokeCommandAction Command="{Binding Command1}" CommandParameter="{Binding ElementName=tb,Path=Text}" />              
                                                </i:EventTrigger>
                                          </i:Interaction.Triggers>
                                    </MenuItem>
                              </ContextMenu>
                        </ListBoxItem.ContextMenu>                                         
                  </ListBoxItem>
                 
                  <ListBoxItem>
                        <TextBlock Text="item2"/>
                        <ListBoxItem.ContextMenu>
                              <ContextMenu>
                                    <MenuItem Header="Call Comand1">
                                          <i:Interaction.Triggers>
                                                <i:EventTrigger EventName="Click">
                                                      <i:InvokeCommandAction Command="{Binding Command1}" CommandParameter="" />
                                                </i:EventTrigger>
                                          </i:Interaction.Triggers>
                                    </MenuItem>
                              </ContextMenu>
                        </ListBoxItem.ContextMenu>
                  </ListBoxItem>
            </ListBox>
            <Label Content="This one can not work" Height="28" HorizontalAlignment="Left" Margin="12,25,0,0" Name="label1" VerticalAlignment="Top" />
            <Label Content="This one can work" Height="28" HorizontalAlignment="Left" Margin="230,25,0,0" Name="label2" VerticalAlignment="Top" />
            <Label Content="Test ListBox ContextMenu" Height="28" HorizontalAlignment="Left" Margin="12,0,0,0" Name="label3" VerticalAlignment="Top" />
      </Grid>
</Window>
 
//------------------
//MainWindowViewModel.cs
//---------------
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows;
using System.Windows.Controls;
using MVVM.Command;
 
namespace MVVM.ViewModels
{
      public class MainWindowViewModel : ViewModelBase
      {
            public List<string> TestItems
            {
                  get
                  {
                        return new List<string>()
                        {
                              "Item1",
                              "Item2",
                              "Item3"
                        };
                  }
            }
 
            public ListBoxItem SelectedText
            {
                  get;
                  set;
            }
            public MainWindowViewModel()
            {
                 
            }
 
            private ICommand _command1;
            public ICommand Command1
            {
                  get
                  {
                        if(null==_command1)
                        {
                              _command1 = new DelegateCommand<string>((str) =>
                           {
                                 MessageBox.Show("Command1 with parameter:" + str+((TextBlock)SelectedText.Content).Text);
                           });
                        }
                        return _command1;
                  }
            }
            ICommand _command2;
            public ICommand Command2
            {
                  get
                  {
                        if (null == _command2)
                        {
                              _command2 = new DelegateCommand<Button>((button) =>
                              {
                                    if (null == button)
                                          return;
                                    Point p = Mouse.GetPosition(button);
                                    button.Content = string.Format("{0},{1}", p.X, p.Y);
                              });
                        }
                        return _command2;
                  }
            }
 
      }
}
   </pre>
AnswerRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberSledgeHammer0129-Dec-12 7:22 
GeneralRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberMember 137073829-Dec-12 15:44 
GeneralRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberSledgeHammer0129-Dec-12 16:26 
GeneralRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberMember 137073829-Dec-12 17:00 
GeneralRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberSledgeHammer0129-Dec-12 17:25 
GeneralRe: MVVM:How to bind the MenuItem Command of ListBoxItem ContextMenu dynamically? PinmemberMember 137073829-Dec-12 19:02 
Questionmm PinmemberAishwarya aishu28-Dec-12 0:44 
AnswerRe: mm PinmvpRichard MacCutchan28-Dec-12 5:59 
Generalsiverlight PinmemberAishwarya aishu28-Dec-12 0:42 
GeneralRe: siverlight PinmvpRichard MacCutchan28-Dec-12 5:57 
QuestionDataTrigger bind to a Property Pinmembermbv80023-Dec-12 17:01 
AnswerRe: DataTrigger bind to a Property PinprotectorPete O'Hanlon23-Dec-12 19:17 
AnswerRe: DataTrigger bind to a Property PinmentorWayne Gaylard23-Dec-12 19:39 
QuestionWPF Adorner Issues PinmvpJohn Simmons / outlaw programmer17-Dec-12 10:52 
AnswerRe: WPF Adorner Issues PinmemberSledgeHammer0118-Dec-12 4:49 
GeneralRe: WPF Adorner Issues PinmvpJohn Simmons / outlaw programmer20-Dec-12 9:09 
GeneralRe: WPF Adorner Issues PinmemberSledgeHammer0121-Dec-12 4:50 
QuestionSilverlight Dynamic indexed binding [modified] PinmemberMember 934221816-Dec-12 18:02 
QuestionThird Party Controls PinmemberKevin Marois11-Dec-12 7:22 
AnswerRe: Third Party Controls PinmemberMycroft Holmes11-Dec-12 12:06 
AnswerRe: Third Party Controls PinprotectorPete O'Hanlon11-Dec-12 12:43 
GeneralRe: Third Party Controls PinmemberKevin Marois12-Dec-12 8:28 
GeneralRe: Third Party Controls PinprotectorPete O'Hanlon12-Dec-12 8:29 
GeneralRe: Third Party Controls PinmemberKevin Marois12-Dec-12 8:30 
GeneralRe: Third Party Controls PinmemberMycroft Holmes12-Dec-12 12:02 
QuestionHow can I Bind a DataTemplate Slider definition to the Code behind? Pinmembermaycockt10-Dec-12 5:24 
AnswerRe: How can I Bind a DataTemplate Slider definition to the Code behind? PinmemberAlisaunder10-Dec-12 13:52 
GeneralRe: How can I Bind a DataTemplate Slider definition to the Code behind? Pinmembermaycockt14-Dec-12 1:18 
QuestionHow does one define IOleServiceProvider in a C# WPF application? PinmemberXarzu10-Dec-12 3:54 
AnswerRe: How does one define IOleServiceProvider in a C# WPF application? PinprotectorPete O'Hanlon10-Dec-12 4:08 
QuestionSetting icons based on Region/city name?! Pinmemberradkrish9-Dec-12 19:43 
AnswerRe: Setting icons based on Region/city name?! PinmvpAbhinav S9-Dec-12 20:12 
QuestionWPF ComboBox Selected Item Problem PinmemberKevin Marois8-Dec-12 10:48 
AnswerRe: WPF ComboBox Selected Item Problem PinmemberNinja__Turtle8-Dec-12 17:43 
AnswerRe: WPF ComboBox Selected Item Problem PinmentorWayne Gaylard8-Dec-12 18:24 
GeneralRe: WPF ComboBox Selected Item Problem PinmemberKevin Marois8-Dec-12 19:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web02 | 2.8.140827.1 | Last Updated 29 Aug 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid