Passing Parameters between xaml window and usercontrol WPF

.net, c#, mvvm, wpf, xaml

Solution

XAML can't use constructor with parameter. Keep what you've tried with dependency property :

<local:Myusercontrol Param1="user1"/>

then you can try this in constructor :

public Myusercontrol()
{
    InitializeComponent();
    Loaded += (sender, args) =>
          {
                UserControlViewModel vm = new UserControlViewModel(Param1);
                this.DataContext = vm;
          };
}

Problem

How to pass Parameters from xaml window to WPF usercontrol constructor? I have tried creating dependency property, but it fails to do it. Should I try xaml extensions or is there any other way to do it? ``` <local:Myusercontrol Param1="user1"/> ``` xaml.cs of the calling `Window`, well its usercontrol. ``` public partial class SomeView : UserControl { SomeViewModel vm = new SomeViewModel(); public SomeView() { this.DataContext = vm; InitializeComponent; } } ``` `InitializeComponent` of above window clears value of dependency property set through xaml before creating an instance of the user control and hence value of depencency property is always null. and usercontrol's xaml.cs ``` Myusercontrol : UserControl { public Myusercontrol (string User) { InitializeComponent(); UserControlViewModel vm = new UserControlViewModel (User); this.DataContext = vm; } ``` Note that I am using MVVM pattern.

Original source