-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathItemsPage.xaml
74 lines (73 loc) · 5.53 KB
/
ItemsPage.xaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:dx="http://schemas.devexpress.com/maui" Title="Blogs"
xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
xmlns:models="clr-namespace:MAUI.Models"
xmlns:viewModels="clr-namespace:MAUI.ViewModels"
xmlns:local="clr-namespace:MAUI.Views"
Style="{OnPlatform iOS={StaticResource ShellStyleiOS}, Android={StaticResource ShellStyle}}"
xmlns:webService="clr-namespace:MAUI.Services" x:DataType="{x:Type viewModels:ItemsViewModel}" ios:Page.UseSafeArea="true" x:Class="MAUI.Views.ItemsPage">
<Shell.BackButtonBehavior>
<BackButtonBehavior IsVisible="False"/>
</Shell.BackButtonBehavior>
<Shell.TitleView>
<local:TitleViewFix>
<Grid Padding="0" Margin="0" ColumnDefinitions="*,Auto,Auto">
<Label Grid.Column="0" VerticalOptions="Center" Text="Blogs" FontSize="20" Style="{OnPlatform iOS={StaticResource TitleColors_iOS_Label}, Android={StaticResource TitleColors_Android_Label}}" TextColor="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource White}}"/>
<dx:DXImage Grid.Column="1" WidthRequest="24" HeightRequest="24">
<dx:DXImage.Source>
<MultiBinding StringFormat="{}{0}PublicEndpoint/AuthorImage/{1}">
<Binding Source="{x:Static webService:WebAPIService.ApiUrl}"/>
<Binding Path="CurrentUser.ID"/>
</MultiBinding>
</dx:DXImage.Source>
<dx:DXImage.Clip>
<EllipseGeometry RadiusX="12" RadiusY="12" Center="12,12" />
</dx:DXImage.Clip>
</dx:DXImage>
<dx:DXButton Padding="0" Grid.Column="2" Command="{Binding LogoutCommand}" Margin="10,0,0,0" Style="{OnPlatform iOS={StaticResource TitleColors_iOS_Button}, Android={StaticResource TitleColors_Android_Button}}" >
<dx:DXImage Source="logout" WidthRequest="32" HeightRequest="16" />
</dx:DXButton>
</Grid>
</local:TitleViewFix>
</Shell.TitleView>
<ContentPage.BindingContext>
<viewModels:ItemsViewModel/>
</ContentPage.BindingContext>
<Grid>
<dx:DXCollectionView x:Name="ItemsListView" BackgroundColor="{AppThemeBinding Light={StaticResource Gray50}, Dark={StaticResource Background_Dark}}" ItemsSource="{Binding Posts}">
<dx:DXCollectionView.ItemTemplate>
<DataTemplate x:DataType="{x:Type models:Post}">
<dx:DXButton CornerRadius="0" Margin="12,6,12,6" Padding="10" HeightRequest="100" BackgroundColor="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Card_Background_Dark}}">
<Grid ColumnDefinitions="150,Auto,5*,4*" RowDefinitions="*,Auto">
<dx:DXImage Grid.RowSpan="2" Margin="0,0,10,0" Aspect="AspectFill">
<dx:DXImage.Source>
<MultiBinding StringFormat="{}{0}PublicEndpoint/PostImage/{1}">
<Binding Source="{x:Static webService:WebAPIService.ApiUrl}"/>
<Binding Path="PostId"/>
</MultiBinding>
</dx:DXImage.Source>
</dx:DXImage>
<Label Grid.Column="1" Grid.ColumnSpan="3" Text="{Binding Title}" FontAttributes="Bold" MaxLines="2"/>
<dx:DXImage Grid.Row="1" Grid.Column="1" WidthRequest="32" HeightRequest="32" Aspect="AspectFill">
<dx:DXImage.Source>
<MultiBinding StringFormat="{}{0}PublicEndpoint/AuthorImage/{1}">
<Binding Source="{x:Static webService:WebAPIService.ApiUrl}"/>
<Binding Path="Author.ID"/>
</MultiBinding>
</dx:DXImage.Source>
<dx:DXImage.Clip>
<EllipseGeometry RadiusX="16" RadiusY="16" Center="16,16" />
</dx:DXImage.Clip>
</dx:DXImage>
<Label Text="{Binding Author.UserName}" Grid.Row="1" Grid.Column="2" VerticalOptions="Center" Margin="5,0,0,0"/>
<dx:DXButton Padding="4,0,4,0" IconColor="{StaticResource Gray500}" Icon="delete" Grid.Row="1" Grid.Column="3" HorizontalOptions="End" IsVisible="{Binding Source={RelativeSource Mode=FindAncestorBindingContext, AncestorType={x:Type viewModels:ItemsViewModel}}, Path=CanDeletePosts}" Command="{Binding Source={RelativeSource Mode=FindAncestorBindingContext, AncestorType={x:Type viewModels:ItemsViewModel}}, Path=DeletePostCommand}" CommandParameter="{Binding}" BackgroundColor="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Card_Background_Dark}}">
<dx:DXImage Source="delete" HeightRequest="20"/>
</dx:DXButton>
</Grid>
</dx:DXButton>
</DataTemplate>
</dx:DXCollectionView.ItemTemplate>
</dx:DXCollectionView>
</Grid>
</ContentPage>