XAML 在MAUI中将命令绑定到父视图模型

0mkxixxg  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(102)

我想引用父视图模型作为命令绑定。我希望MAUI语法能像Xamarin一样工作,但我得到了以下错误:

  • “}”应为
  • '�'预期

下面是我尝试的语法:

<ContentPage ... x:Class="ParentPage" x:DataType="ParentViewModel" x:Name="Parent">
        <StackLayout>
            <ListView ItemsSource="{Binding Tabs}">
                <ListView.ItemTemplate>
                    <DataTemplate x:DataType="TabViewModel">
                        <ViewCell>
                            <Button Text="Do it"
                                Command="{Binding Path=SelectTab
                                    RelativeSource={RelativeSource AncestorType={x:Type ParentPage}}}" />
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage>


Or:

个字符
这个语法有什么问题?
是否有MAUI绑定的特定文档?

eyh26e7m

eyh26e7m1#

在第一个代码段中,缺少了一个逗号,并且多了一个右括号:

<Button Text="Do it"
    Command="{Binding Path=SelectTab, 
                      RelativeSource={RelativeSource AncestorType={x:Type ParentPage}}}"
/>

字符串

1tuwyuhd

1tuwyuhd2#

如果您将视图分隔到它们自己的命名空间中,还有一些更有用的提示:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="AppName.Views.UsersPage"
             x:Name="Parent"
             xmlns:local="clr-namespace:AppName.ViewModels"
             xmlns:views="clr-namespace:AppName.Views"             
             Title="Users Page">

字符串
注意“视图”的XML名称空间
然后,与上述所有命令绑定的完整命令变为:

Command="{Binding Path=AcceptCommand, Source={RelativeSource AncestorType={x:Type views:UsersPage}}}"


在ViewModel类中需要以下命令:

public class UsersViewModel
{
 ...
   public Command AcceptCommand;
 ...
}

相关问题