.net 绑定开关Toggled属性

qyzbxkaa  于 2023-04-13  发布在  .NET
关注(0)|答案(1)|浏览(101)

我想知道是否有可能绑定一个切换属性的开关控制,如果有,那么如何?

<Switch
Grid.Column="1"
HorizontalOptions="End" 
VerticalOptions="Center"
Margin="20,0"
OnColor="#00CD00"
ThumbColor="White"
Toggled="Binding SomeFunction"/>

谢谢

pgx2nnw8

pgx2nnw81#

您可以使用Maui CommunityToolkit EventToCommandBehavior
首先,请安装CommunityToolkit.Maui Nuget并初始化软件包。有关详细信息,请参阅Get started
然后在xaml中,我们将EventToCommandBehavior添加到Switch中。它允许我们将Switch上的Toggled事件Map到viewModel中定义的Command(如果使用MVVM方式)。

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
...
     xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

<Switch             
   HorizontalOptions="End" 
   VerticalOptions="Center"
   Margin="20,0"
   OnColor="#00CD00"
   ThumbColor="White"
   >
   <Switch.Behaviors>
       <toolkit:EventToCommandBehavior
           EventName="Toggled"
           Command="{Binding ToggledCommand}" />
   </Switch.Behaviors>

在viewModel文件中,我们只定义ToggledCommand,如下所示:

public class MainPageViewModel
{
    public Command ToggledCommand
    {
        get
        {
            return new Command(() =>
            {
                //you could add your function here                  
                Console.WriteLine("123");
            });
        }
    }

不要忘记在MauiProgram.cs中初始化包:

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseMauiCommunityToolkit()
            .ConfigureFonts(fonts =>
...

希望能成功。

相关问题