lynxAi
Member
model:
ViewModel:
View:
model:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PasswordSaver.Models
{
public class info
{
public static string[] Text { get; set; } = new string[2];
}
}
ViewModel:
ViewModel:
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Collections.ObjectModel;
using System.Windows.Input;
namespace PasswordSaver.ViewModels
{
public partial class MainPageModel : ObservableObject
{
public MainPageModel()
{
Items = new ObservableCollection<string[]>();
}
public string Website
{
get => Models.info.Text[0];
set
{
Models.info.Text[0] = value;
}
}
public string Password
{
get => Models.info.Text[1];
set
{
Models.info.Text[1] = value;
}
}
[ObservableProperty]
ObservableCollection<string[]> items;
[RelayCommand]
void Add()
{
if (string.IsNullOrWhiteSpace(Website) || string.IsNullOrWhiteSpace(Password))
{
return;
}
Items.Add(Models.info.Text);
}
[RelayCommand]
void Delete(string[] x)
{
if (Items.Contains(x))
{
Items.Remove(x);
}
}
}
}
View:
View:
<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="PasswordSaver.MainPage"
x:DataType="viewmodels:MainPageModel"
xmlns:viewmodels ="clr-namespace:PasswordSaver.ViewModels"
xmlns:models ="clr-namespace:PasswordSaver.Models"
Shell.NavBarIsVisible="False">
<TabBar>
<ContentPage Title="主页" >
<ScrollView>
<StackLayout Padding="10" >
<Grid RowDefinitions="*,*,*,*" RowSpacing ="10">
<Label Text="Demo_PasswordSS" HorizontalOptions="Center" FontSize="Title"/>
<Entry Text="{Binding Website}" Grid.Row="1" BackgroundColor="Orange"/>
<Entry Text="{Binding Password}" Grid.Row="2" BackgroundColor="Orange" />
<Button Text="添加" Grid.Row="3" Command="{Binding AddCommand}" />
</Grid>
<CollectionView ItemsSource="{Binding Items}" >
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:info">
<SwipeView >
<SwipeView.RightItems>
<SwipeItems >
<SwipeItem Text="删除" BackgroundColor="Red" />
</SwipeItems>
</SwipeView.RightItems>
<Frame Background="gray">
<Grid RowDefinitions="*,*" ColumnDefinitions="*,*" Padding="10" >
<Label Text="websites" FontSize="Body" TextColor="Blue" Grid.Row="0" Grid.Column="0" />
<Label Text="password" FontSize="Body" TextColor="Black" Grid.Row="0" Grid.Column="3" />
<Label x:Name="web" Text="{Binding Text[0]}" FontSize="Body" Grid.Row="1" Grid.Column="0" />
<Label x:Name="Pwd" Text="{Binding Text[1]}" FontSize="Body" Grid.Row="1" Grid.Column="3" />
</Grid>
</Frame>
</SwipeView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</ScrollView>
</ContentPage>
<ContentPage Title="设置">
<Grid>
<Label Text="keep continue" HorizontalOptions="Center" VerticalOptions="Center" FontSize="30"/>
</Grid>
</ContentPage>
</TabBar>
</Shell>