🚧 Amélioration du binding, avec l'actualisation et l'interaction avec la grille d'opération
continuous-integration/drone/push Build is failing Details

pull/96/head
Rémi LAVERGNE 11 months ago
parent 3d3677ea7f
commit 5f3480bf98
No known key found for this signature in database
GPG Key ID: 7BCBAE9031E39160

@ -2,58 +2,77 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Trek_12.Views.PageBoard"
Title="Board">
<Grid RowDefinitions="*,auto">
<Grid ColumnDefinitions="*,auto">
<CollectionView ItemsSource="{Binding ListMap[0].Boards}"
Title="Board"
BackgroundColor="Bisque">
<Grid RowDefinitions="*,auto" ColumnDefinitions="*,auto">
<Image Source="maptest.png" Aspect="AspectFit" Grid.ColumnSpan="2" Grid.RowSpan="3"/>
<CollectionView ItemsSource="{Binding ListMap[0].Boards}"
Grid.Row="1"
Grid.Column="0"
SelectionMode="Single"
WidthRequest="350"
HeightRequest="350"
ItemsLayout="VerticalGrid,7"
BackgroundColor="Aqua">
<CollectionView.ItemTemplate>
<DataTemplate>
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid VerticalOptions="Center" HorizontalOptions="Center" HeightRequest="50" WidthRequest="50">
<Frame
IsVisible="{Binding Valid}"
BorderColor="DarkGray"
CornerRadius="25"
HeightRequest="50"
WidthRequest="50"
BackgroundColor="Transparent"
VerticalOptions="Center"
IsVisible="{Binding Valid}"
BorderColor="DarkGray"
CornerRadius="25"
HeightRequest="50"
WidthRequest="50"
BackgroundColor="White"
Opacity="0.7"
VerticalOptions="Center"
HorizontalOptions="Center"
>
Padding="0">
<Frame.Triggers>
<DataTrigger TargetType="Frame" Binding="{Binding IsDangerous}" Value="True">
<Setter Property="BorderColor" Value="Black"/>
</DataTrigger>
<DataTrigger TargetType="Frame" Binding="{Binding IsDangerous}" Value="False">
<Setter Property="BorderColor" Value="Transparent"/>
</DataTrigger>
</Frame.Triggers>
</Frame>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<CollectionView ItemsSource="{Binding ListMap[0].OperationGrid}"
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<!-- Operation Grid -->
<CollectionView Grid.Row="0" Grid.Column="1"
ItemsSource="{Binding ListMap[0].OperationGrid}"
ItemsLayout="VerticalGrid,5"
Grid.Column="1"
WidthRequest="250"
HeightRequest="250"
SelectionMode="Single"
Margin="20">
<CollectionView.ItemTemplate >
BackgroundColor="Transparent"
SelectionChanged="OnOperationCellSelected"
Margin="50">
<CollectionView.ItemTemplate>
<DataTemplate>
<VerticalStackLayout>
<Frame HasShadow="True"
BorderColor="DarkGray"
BackgroundColor="Transparent"
HorizontalOptions="Center"
HeightRequest="50"
WidthRequest="50"
Padding="5">
<Label Text="{Binding IsChecked}"
FontAttributes="Bold"
FontSize="16"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
</VerticalStackLayout>
<Frame HasShadow="True"
BorderColor="Black"
BackgroundColor="Transparent"
CornerRadius="0"
HorizontalOptions="Center"
VerticalOptions="Center"
HeightRequest="50"
WidthRequest="50"
Padding="0">
<Image Source="checked.png"
IsVisible="{Binding IsChecked}"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Frame>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
</CollectionView>
</Grid>
</ContentPage>

@ -1,4 +1,8 @@
using System.Diagnostics;
namespace Trek_12.Views;
using Models.Game;
using Stub;
public partial class PageBoard : ContentPage
@ -10,4 +14,19 @@ public partial class PageBoard : ContentPage
InitializeComponent();
BindingContext = MyStub;
}
private void OnOperationCellSelected(object sender, SelectionChangedEventArgs e)
{
Debug.WriteLine("OnOperationCellSelected"); // Debug
if (e.CurrentSelection.Count > 0) // Si un élément est sélectionné
{
var selectedCell = (OperationCell)e.CurrentSelection[0];
if (selectedCell != null && !selectedCell.IsChecked)
{
selectedCell.Check();
Debug.WriteLine("OperationCell at ({0}, {1}) is checked", selectedCell.X, selectedCell.Y); // Debug
}
((CollectionView)sender).SelectedItem = null; // Déselectionne l'élément pour la CollectionView
}
}
}
Loading…
Cancel
Save