如何在视图中传递参数?

  • 本文关键字:参数 视图 .net maui
  • 更新时间 :
  • 英文 :


我有myviewmodel其中我调用文件夹选择器

public MyViewModel(IFolderPicker folderPicker)
{
_folderPicker = folderPicker;
}

我想将它与子视图绑定。我不能通过视图来做因为它是参数化的构造函数。所以我在子视图

的示例。cs中绑定了这个上下文
public ChildView(MyViewModel vm )
{
InitializeComponent();
BindingContext= vm;
}

这是我如何在父视图中添加子视图

<view:ChildView  Grid.Column="0" Grid.RowSpan="4"></view:ChildView>

现在我有一个父视图,我必须在其中设置子视图。在父视图中添加子视图时它会给我一个错误项目文件行抑制状态错误XFC0004缺少demoapp . mvvm . view . childview的默认构造函数。DemoApp D: Priti Samples DemoApp DemoApp MVVM ParentView视图。xaml 45
如何实现?

当你像这样在xaml中实例化对象时

<view:ChildView  Grid.Column="0" Grid.RowSpan="4"></view:ChildView>

则您的类ChildView需要默认构造函数(没有任何参数的构造函数)!否则。net框架不知道如何实例化你的对象。

您的问题的一个可能的解决方案可能是设置视图模型的方法(希望设置为您的父控件的DataContext)也作为您的子控件的DataContext。然而,你必须删除带有参数的ChildView构造函数(因此将再次使用默认构造函数)

<view:ChildView DataContext="{Binding DataContext}" Grid.Column="0" Grid.RowSpan="4"></view:ChildView>

希望,我的解释是可以理解的,并将工作:)