我有一个小型 MAUI 程序使用CollectionView
- 并且每个项目都有附带命令的按钮(例如 changeitem)
应用程序可以正常运行。但我在编译和运行时收到有关数据绑定的警告。
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:CheckItem">
<Grid ColumnDefinitions="*,Auto" ColumnSpacing="{StaticResource StdSpacing}">
<Grid
Grid.Column="1"
Margin="{StaticResource StdMargin}"
ColumnDefinitions="auto,auto"
ColumnSpacing="{StaticResource StdSpacing}">
<Button
Grid.Column="0"
Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodel:OverviewViewModel}}, Path=ChangeItemCommand}"
CommandParameter="{Binding .}"
Style="{x:StaticResource GoogleFont}"
Text="{x:Static font:GoogleIconFont.Edit}" />
</Grid>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
命令位于 ViewModel 中,viewmodel:OverviewViewModel
而项目的数据模型位于中model:CheckItem
。
ContenPage 以以下内容开始:
x:Class="BicycleCheckList.OverviewPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:font="clr-namespace:BicycleCheckList.Utils"
xmlns:local="clr-namespace:BicycleCheckList.Resources.Strings"
xmlns:model="clr-namespace:BicycleCheckList.Models"
xmlns:utils="clr-namespace:BicycleCheckList.Utils"
xmlns:viewmodel="clr-namespace:BicycleCheckList.ViewModels"
Title="{Binding Title}"
x:DataType="viewmodel:OverviewViewModel">
在编译时,我收到一个警告:
XC0045 Binding: Property "ChangeItemCommand" not found on "BicycleCheckList.Models.CheckItem".
命令的绑定Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodel:OverviewViewModel}}, Path=ChangeItemCommand}"
没有找到该命令。
为什么?
该(玩具)应用程序也可以在Github上找到