236 lines
12 KiB
XML
236 lines
12 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:views="clr-namespace:LibationAvalonia.Views"
|
|
xmlns:uibase="clr-namespace:LibationUiBase.GridView;assembly=LibationUiBase"
|
|
xmlns:controls="clr-namespace:LibationAvalonia.Controls"
|
|
mc:Ignorable="d" d:DesignWidth="1560" d:DesignHeight="400"
|
|
x:Class="LibationAvalonia.Views.ProductsDisplay">
|
|
|
|
<Grid>
|
|
|
|
<DataGrid
|
|
Name="productsGrid"
|
|
ClipboardCopyMode="IncludeHeader"
|
|
GridLinesVisibility="All"
|
|
AutoGenerateColumns="False"
|
|
Items="{Binding GridEntries}"
|
|
CanUserSortColumns="True" BorderThickness="3"
|
|
CanUserReorderColumns="True">
|
|
|
|
<DataGrid.Styles>
|
|
<Style Selector="DataGridCell">
|
|
<Setter Property="Height" Value="80"/>
|
|
</Style>
|
|
<Style Selector="DataGridCell > Panel">
|
|
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
|
</Style>
|
|
<Style Selector="DataGridCell > Panel > TextBlock">
|
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
|
<Setter Property="TextWrapping" Value="Wrap"/>
|
|
<Setter Property="Padding" Value="4"/>
|
|
<Setter Property="FontSize" Value="12"/>
|
|
</Style>
|
|
<Style Selector="DataGridCell Path">
|
|
<Setter Property="Stretch" Value="Uniform" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="Fill" Value="{DynamicResource IconFill}" />
|
|
</Style>
|
|
<Style Selector="DataGridColumnHeader ContextMenu MenuItem">
|
|
<Setter Property="Padding" Value="0" />
|
|
<Style Selector="^:icon /template/ Viewbox#PART_IconPresenter">
|
|
<Setter Property="Height" Value="32" />
|
|
<Setter Property="Width" Value="32" />
|
|
<Setter Property="Margin" Value="6,0" />
|
|
</Style>
|
|
</Style>
|
|
</DataGrid.Styles>
|
|
|
|
<DataGrid.Columns>
|
|
|
|
<DataGridTemplateColumn
|
|
CanUserSort="True"
|
|
IsVisible="{Binding RemoveColumnVisivle}"
|
|
PropertyChanged="RemoveColumn_PropertyChanged"
|
|
Header="Remove"
|
|
IsReadOnly="False"
|
|
SortMemberPath="Remove"
|
|
Width="75">
|
|
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<CheckBox
|
|
HorizontalAlignment="Center"
|
|
IsThreeState="True"
|
|
IsChecked="{CompiledBinding Remove, Mode=TwoWay}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
|
|
<controls:DataGridTemplateColumnExt CanUserSort="True" Width="75" Header="Liberate" SortMemberPath="Liberate" ClipboardContentBinding="{Binding Liberate.ToolTip}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<views:LiberateStatusButton
|
|
ToolTip.Tip="{CompiledBinding Liberate.ToolTip}"
|
|
BookStatus="{CompiledBinding Liberate.BookStatus}"
|
|
PdfStatus="{CompiledBinding Liberate.PdfStatus}"
|
|
IsUnavailable="{CompiledBinding Liberate.IsUnavailable}"
|
|
IsSeries="{CompiledBinding Liberate.IsSeries}"
|
|
Expanded="{CompiledBinding Liberate.Expanded}"
|
|
Click="LiberateButton_Click" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<DataGridTemplateColumn CanUserSort="False" Width="80" Header="Cover" SortMemberPath="Cover" ClipboardContentBinding="{Binding LibraryBook.Book.PictureLarge}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Image Opacity="{CompiledBinding Liberate.Opacity}" Tapped="Cover_Click" Height="80" Source="{CompiledBinding Cover}" ToolTip.Tip="Click to see full size" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
|
|
<controls:DataGridTemplateColumnExt MinWidth="150" Width="2*" Header="Title" CanUserSort="True" SortMemberPath="Title" ClipboardContentBinding="{Binding Title}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock FontSize="14" Text="{CompiledBinding Title}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt MinWidth="80" Width="1*" Header="Authors" CanUserSort="True" SortMemberPath="Authors" ClipboardContentBinding="{Binding Authors}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Authors}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt MinWidth="80" Width="1*" Header="Narrators" CanUserSort="True" SortMemberPath="Narrators" ClipboardContentBinding="{Binding Narrators}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Narrators}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt Width="90" Header="Length" CanUserSort="True" SortMemberPath="Length" ClipboardContentBinding="{Binding Length}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Length}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt MinWidth="80" Width="1*" Header="Series" CanUserSort="True" SortMemberPath="Series" ClipboardContentBinding="{Binding Series}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Series}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt MinWidth="100" Width="1*" Header="Description" CanUserSort="True" SortMemberPath="Description" ClipboardContentBinding="{Binding LongDescription}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}" Tapped="Description_Click" ToolTip.Tip="Click to see full description" >
|
|
<TextBlock Text="{CompiledBinding Description}" FontSize="11" VerticalAlignment="Top" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt Width="100" Header="Category" CanUserSort="True" SortMemberPath="Category" ClipboardContentBinding="{Binding Category}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Category}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridMyRatingColumn
|
|
x:DataType="uibase:IGridEntry"
|
|
Header="Product
Rating"
|
|
IsReadOnly="true"
|
|
Width="115"
|
|
SortMemberPath="ProductRating" CanUserSort="True"
|
|
OpacityBinding="{CompiledBinding Liberate.Opacity}"
|
|
BackgroundBinding="{CompiledBinding Liberate.BackgroundBrush}"
|
|
ClipboardContentBinding="{CompiledBinding ProductRating}"
|
|
Binding="{CompiledBinding ProductRating}" />
|
|
|
|
<controls:DataGridTemplateColumnExt Width="90" Header="Purchase
Date" CanUserSort="True" SortMemberPath="PurchaseDate" ClipboardContentBinding="{Binding PurchaseDate}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding PurchaseDate}" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridMyRatingColumn
|
|
x:DataType="uibase:IGridEntry"
|
|
Header="My Rating"
|
|
IsReadOnly="false"
|
|
Width="115"
|
|
SortMemberPath="MyRating" CanUserSort="True"
|
|
OpacityBinding="{CompiledBinding Liberate.Opacity}"
|
|
BackgroundBinding="{CompiledBinding Liberate.BackgroundBrush}"
|
|
ClipboardContentBinding="{CompiledBinding MyRating}"
|
|
Binding="{CompiledBinding MyRating, Mode=TwoWay}" />
|
|
|
|
<controls:DataGridTemplateColumnExt Width="135" Header="Misc" CanUserSort="True" SortMemberPath="Misc" ClipboardContentBinding="{Binding Misc}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}">
|
|
<TextBlock Text="{CompiledBinding Misc}" TextWrapping="WrapWithOverflow" FontSize="10" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt Width="102" Header="Last
Download" CanUserSort="True" SortMemberPath="LastDownload" ClipboardContentBinding="{Binding LastDownload}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Background="{CompiledBinding Liberate.BackgroundBrush}" ToolTip.Tip="{CompiledBinding LastDownload.ToolTipText}" DoubleTapped="Version_DoubleClick">
|
|
<TextBlock Text="{CompiledBinding LastDownload}" TextWrapping="WrapWithOverflow" FontSize="10" />
|
|
</Panel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
<controls:DataGridTemplateColumnExt CanUserSort="True" Width="100" Header="Tags" SortMemberPath="BookTags" ClipboardContentBinding="{Binding BookTags}">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate x:DataType="uibase:IGridEntry">
|
|
<Button IsVisible="{CompiledBinding !Liberate.IsSeries}" Width="100" Height="80" Click="OnTagsButtonClick" ToolTip.Tip="Click to edit tags" >
|
|
<Panel Opacity="{CompiledBinding Liberate.Opacity}">
|
|
<Panel Width="24" Height="24" IsVisible="{CompiledBinding BookTags, Converter={x:Static StringConverters.IsNullOrEmpty}}">
|
|
<Path Stretch="Uniform" Fill="{DynamicResource IconFill}" Data="{StaticResource EditTagsIcon}" />
|
|
</Panel>
|
|
<TextBlock IsVisible="{CompiledBinding BookTags, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" FontSize="12" TextWrapping="WrapWithOverflow" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{CompiledBinding BookTags}"/>
|
|
</Panel>
|
|
</Button>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</controls:DataGridTemplateColumnExt>
|
|
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Grid>
|
|
</UserControl>
|