MyView.xaml将MyViewModel作为DataContext。 MyViewModel采用int参数。那么,我如何使用参数将datacontext设置为MyViewModel。我需要在MyView.xaml中绑定一个来自codebehind的int属性,如下所示:
MyView.xaml
<dxr:DXRibbonWindow.DataContext>
<ObjectDataProvider ObjectType="vm:MyViewModel" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ObjectDataProvider.ConstructorParameters>
<sys:Int32>Id</sys:Int32>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
</dxr:DXRibbonWindow.DataContext>
MyView.xaml.cs(codebehind)
public int Id {get;set;}
答案 0 :(得分:0)
我知道这不是你提出的问题,但这只是我在每次使用xaml设置datacontext时使用的不同方法。
我通常为我的viewmodel定义一个加载的事件,如下所示:
public void LoadParams(int Id)
{
this.Id = Id;
}
这是一个非常简单的解决方案。您只需要从用户控件中调用此方法(您也可以在Loaded event
上执行此操作)。在您的代码中,您可以执行以下操作:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
MyViewmodel instance = this.DataContext as MyViewmodel;
instance.LoadParameters(Id);
}