以下是MainPage.xaml的XAML代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="mauiApp.MainPage"
xmlns:viewmodel="clr-namespace:mauiApp.ViewModel"
x:DataType="viewmodel:MainViewModel">
<Grid RowDefinitions="100, Auto, *"
ColumnDefinitions=".75*,.25*"
Padding="10"
RowSpacing="10"
ColumnSpacing="10">
<Image Grid.ColumnSpan="2"
Source="dotnet_bot.png"
BackgroundColor="Transparent"/>
<Entry Placeholder="Enter task"
Text="{Binding Text}"
Grid.Row="1"/>
<Button Text="Add"
Command="{Binding AddCommand}"
Grid.Row="1"
Grid.Column="1"/>
<CollectionView Grid.Row="2"
Grid.ColumnSpan="2"
ItemsSource="{Binding Items}">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="{x:Type x:String}">
<SwipeView>
<SwipeView.RightItems>
<SwipeItem Text="Delete"
BackgroundColor="Red"
Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodel:MainViewModel}},Path=DeleteCommand}"
CommandParameter="{Binding .}"/>
</SwipeView.RightItems>
<Grid Padding="0,5">
<Frame>
<Label Text="{Binding .}"
FontSize="24"/>
</Frame>
</Grid>
</SwipeView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
</ContentPage>
以下是MainViewModel.cs的C#代码:
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Collections.ObjectModel;
namespace mauiApp.ViewModel
{
public partial class MainViewModel : ObservableObject
{
public MainViewModel()
{
Items = new ObservableCollection<string>();
}
[ObservableProperty]
ObservableCollection<string> items;
[ObservableProperty]
string text;
[RelayCommand]
void Add()
{
if(string.IsNullOrWhiteSpace(Text))
{
return;
}
Items.Add(Text);
Text = string.Empty;
}
[RelayCommand]
void Delete(string s)
{
if (Items.Contains(s))
{
Items.Remove(s);
}
}
}
}
以下是MainProgram.cs的C#代码:
using mauiApp.ViewModel;
namespace mauiApp;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Services.AddSingleton<MainPage>();
builder.Services.AddSingleton<MainViewModel>();
return builder.Build();
}
}
以下是MainPage.xaml.cs的C#代码:
using mauiApp.ViewModel;
namespace mauiApp
public partial class MainPage : ContentPage
{
public MainPage(MainViewModel vm)
{
InitializeComponent();
BindingContext = vm;
}
}
我正在努力学习毛伊语,我从YouTube频道的DotNet教程中复制了以下代码.然而,CollectionView中的滑动到删除功能并未按预期工作:
- 当我滑动并点击"Delete"时,该项不会从集合中移除,Delete方法也不会被击中.