Hi there again. i have a
custom user control which is dynamically added in my main view.
inside my usercontrol there's a button, i want that button to execute a method located in my mainVM, before posting this question, i have tried many solutions. but all of them doesn't work considering that i almost have the same code.I think is something problem
or much more deeper understanding with WPF. please check my code below.
Usercontrol.xaml
<MyControl ....> ...<Button Command="{Binding SomeCommand}">MyButton</Button> ...</MyControl>
Usercontrol.xaml.cs
public partial class MyControl: UserControl{ public MyControl() { InitializeComponent(); } public ICommand SomeCommand { get { return (ICommand)GetValue(SomeCommandProperty); } set { SetValue(SomeCommandProperty, value); } } public static readonly DependencyProperty SomeCommandProperty = DependencyProperty.Register("SomeCommand", typeof(ICommand), typeof(MyControl), new UIPropertyMetadata(null)); .... }
MainView.xaml
...<!-- then the uc is added dynamically--><ListBox..><ListBox.ItemTemplate><DataTemplate><uc:MyControl SomeCommand="{Binding CommandFromMainVm}"></DataTemplate></ListBox.ItemTemplate></uc:IdleEntryView></ListBox> ...
MainVM.cs
.... private DelegateCommand commandFromMainVm; public ICommand CommandFromMainVm{ get { if (commandFromMainVm== null) { commandFromMainVm= new DelegateCommand(ExecuteThisMethod); } return commandFromMainVm; } } private void ExecuteThisMethod(){ //i have some logics here and i need to execute it //trough my user control button click. }
btw. im using MVVM light toolkit from code flex.
Thanks in advance.
fadz