【发布时间】:2014-03-10 04:02:48
【问题描述】:
如何将参数从 xaml 窗口传递给 WPF 用户控件构造函数? 我试过创建依赖属性,但它没有做到。 我应该尝试 xaml 扩展还是有其他方法可以做到这一点?
<local:Myusercontrol Param1="user1"/>
调用Window的xaml.cs,以及它的用户控件。
public partial class SomeView : UserControl
{
SomeViewModel vm = new SomeViewModel();
public SomeView()
{
this.DataContext = vm;
InitializeComponent;
}
}
上述窗口的InitializeComponent 在创建用户控件的实例之前清除通过xaml 设置的依赖属性的值,因此依赖属性的值始终为空。
和usercontrol的xaml.cs
Myusercontrol : UserControl
{
public Myusercontrol (string User)
{
InitializeComponent();
UserControlViewModel vm = new UserControlViewModel (User);
this.DataContext = vm;
}
请注意,我使用的是 MVVM 模式。
【问题讨论】:
-
尝试将 InitializeComponent() 移到设置 DataContext 的位置之后
-
@Dan Buscha 试过了。没有帮助。窗口的初始化组件清除依赖属性,然后实例化用户控件。