如何将int属性值绑定到ObjectDataProvider ConstructorParameter

时间:2017-11-30 02:49:29

标签: wpf data-binding wpf-controls wpfdatagrid

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;}

1 个答案:

答案 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);
}