[英]How to pass parameters in view?
我有我稱為文件夾選擇器的 myViewModelIn
public MyViewModel(IFolderPicker folderPicker)
{
_folderPicker = folderPicker;
}
我想將它與子視圖綁定。 我無法通過視圖執行此操作,因為它是參數化的構造函數。 所以我在子視圖的 xaml.cs 中綁定了這個上下文
public ChildView(MyViewModel vm )
{
InitializeComponent();
BindingContext= vm;
}
這就是我在父視圖中添加子視圖的方式
<view:ChildView Grid.Column="0" Grid.RowSpan="4"></view:ChildView>
現在我有一個父視圖,我必須在其中設置這個子視圖。 在父視圖中添加此子視圖時,出現錯誤嚴重性代碼說明項目文件行抑制 State 錯誤 XFC0004 缺少“DemoApp.MVVM.View.ChildView”的默認構造函數。 DemoApp D:\Priti\Samples\DemoApp\DemoApp\MVVM\View\ParentView.xaml 45
我怎樣才能做到這一點?
當你像這樣實例化 xaml 中的對象時
<view:ChildView Grid.Column="0" Grid.RowSpan="4"></view:ChildView>
那么您的 class ChildView
需要默認構造函數(沒有任何參數的構造函數)。 否則 .NET 框架不知道如何實例化你的對象。
您的問題的一個可能解決方案是將視圖 model(希望設置為父控件的DataContext
)以及子控件的DataContext
的方法。 盡管如此,您必須使用參數刪除 ChildView 構造函數(因此將再次使用默認構造函數)
<view:ChildView DataContext="{Binding DataContext}" Grid.Column="0" Grid.RowSpan="4"></view:ChildView>
希望,我的解釋是可以理解的並且會起作用:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.