xaml - 在 XAML 中为 viewmodel 构造函数添加复杂参数
问题描述
Flexlayout有可绑定Item源
<FlexLayout x:Name="playerscollection" Wrap="Wrap" BindableLayout.ItemsSource="{Binding Players}" />
视图模型中的项目定义为
public ObservableCollection<PlayerModel> Players { get; set; }
FlexLayout 数据模板是一个内容视图我需要分配一个特定的视图模型“PlayerViewModel”作为内容视图 BindingContext
public PlayerViewModel(bool showPicker = true, PlayerModel player = null){}
所以在 FlexLayout 中,
<FlexLayout x:Name="playerscollection" Wrap="Wrap" BindableLayout.ItemsSource="{Binding Players}">
<views:PlayerView >
<views:PlayerView.BindingContext>
<viewModels:PlayerViewModel>
<x:Arguments>
<x:Boolean>False</x:Boolean>
<models:PlayerModel/>
</x:Arguments>
</viewModels:PlayerViewModel>
</views:PlayerView.BindingContext>
</views:PlayerView>
</FlexLayout>
但是错误说“类型'PlayerViewModel'不能用作对象元素,因为它不是公共的或没有定义公共无参数构造函数或类型转换器”
解决方案
我创建了一个基本演示来测试代码并重现错误。该错误不会影响项目构建,它只是 IDE 的智能感知错误。请忽略错误并部署代码,它会正常工作。
推荐阅读
- c++ - 使用 IP Helper 的 Windows 中活动 UDP 连接的远程地址
- java - 当两个打开并具有相同名称时如何处理一个 JFrame
- css - 控制高度和边框底部flex子的方法
- csv - 导入、导出 TSV Laravel
- c++ - 如何在 C++ 中使用 NULL(或 0)初始化静态字符数组
- c# - 2 下拉列表和日历在C#中显示gridview
- forms - UWP如何组织一个巨大的输入表单
- c# - 如何使用列名而不是c#中的列号仅检索csv的几列数据
- python - /usr/bin/python3:错误的解释器:符号链接的级别太多
- php - 在 PHP 中获取 XML 模式值