【问题标题】:how to bind int property value to ObjectDataProvider ConstructorParameter如何将 int 属性值绑定到 ObjectDataProvider ConstructorParameter
【发布时间】:2018-05-13 21:22:00
【问题描述】:

MyView.xaml 将 MyViewModel 作为 DataContext。 MyViewModel 接受一个 int 参数。那么,我如何使用参数将 datacontext 设置为 MyViewModel。我需要从 MyView.xaml 中的代码隐藏中绑定一个 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(代码隐藏)

public int Id {get;set;}

【问题讨论】:

    标签: wpf data-binding wpf-controls wpfdatagrid


    【解决方案1】:

    我知道这不完全是您所要求的,但这只是我每次在 xaml 中设置数据上下文时使用的不同方法。

    我通常为我的视图模型定义一个加载事件,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2010-12-09
      相关资源
      最近更新 更多