mirror of
https://github.com/unclshura/splitter.git
synced 2026-06-21 16:12:01 +00:00
Multiselection added to FileListView
This commit is contained in:
parent
3f1924a429
commit
ad418e18a9
@ -8,6 +8,7 @@ public partial class FileListViewModel : ObservableObject
|
||||
{
|
||||
private readonly IFileJobFactory _factory;
|
||||
public ObservableCollection<FileJobViewModel> Files { get; } = [];
|
||||
public ObservableCollection<FileJobViewModel> SelectedFiles { get; } = [];
|
||||
|
||||
[ObservableProperty]
|
||||
private FileJobViewModel? _selected;
|
||||
|
||||
@ -12,11 +12,11 @@
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
</Style>
|
||||
|
||||
<Style Selector="views|FileListView[IsDragActive=true] Border#DropZone">
|
||||
<Setter Property="BorderBrush" Value="Red"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
</Style>
|
||||
|
||||
</UserControl.Styles>
|
||||
|
||||
<Border x:Name="DropZone"
|
||||
@ -28,56 +28,67 @@
|
||||
DragDrop.DragEnter="OnDragEnter"
|
||||
DragDrop.DragLeave="OnDragLeave">
|
||||
|
||||
|
||||
|
||||
<ScrollViewer>
|
||||
<ItemsControl ItemsSource="{Binding Files}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ListBox ItemsSource="{Binding Files}"
|
||||
SelectedItems="{Binding SelectedFiles}"
|
||||
SelectedItem="{Binding Selected}"
|
||||
SelectionMode="Multiple"
|
||||
BorderThickness="0"
|
||||
Background="Transparent">
|
||||
|
||||
<ListBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
</ListBox.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<ListBox.Styles>
|
||||
<Style Selector="ListBoxItem:selected /template/ ContentPresenter">
|
||||
<Setter Property="Background" Value="#9A9A9A"/>
|
||||
</Style>
|
||||
</ListBox.Styles>
|
||||
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:FileJobViewModel">
|
||||
<Border Margin="6" Padding="6" Background="#2A2A2A" CornerRadius="4">
|
||||
<Border x:Name="ItemRoot"
|
||||
Margin="0"
|
||||
Padding="0"
|
||||
CornerRadius="4"
|
||||
Background="#2A2A2A">
|
||||
<StackPanel MinWidth="160" MaxWidth="160">
|
||||
|
||||
<Border Width="160" Height="90" ClipToBounds="True">
|
||||
<Grid>
|
||||
<!-- Thumbnail -->
|
||||
<Image Source="{Binding Thumbnail}"
|
||||
Stretch="UniformToFill"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
<!-- Suggested action decal -->
|
||||
<TextBlock
|
||||
FontFamily="{StaticResource FontAwesome}"
|
||||
Text="{Binding SuggestedAction, Converter={StaticResource ActionToIconConverter}}"
|
||||
FontSize="12"
|
||||
HorizontalAlignment="Right"
|
||||
Foreground="LimeGreen"/>
|
||||
<TextBlock FontFamily="{StaticResource FontAwesome}"
|
||||
Text="{Binding SuggestedAction, Converter={StaticResource ActionToIconConverter}}"
|
||||
FontSize="12"
|
||||
HorizontalAlignment="Right"
|
||||
Foreground="LimeGreen"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
|
||||
<TextBlock Text="{Binding FileName}"
|
||||
TextWrapping="Wrap"
|
||||
Margin="0,6,0,0"
|
||||
FontSize="10"/>
|
||||
|
||||
|
||||
<ProgressBar
|
||||
MinWidth="160"
|
||||
MaxWidth="160"
|
||||
Height="10"
|
||||
Margin="0,4,0,0"
|
||||
Value="{Binding Progress.Percent}" />
|
||||
<ProgressBar MinWidth="160"
|
||||
MaxWidth="160"
|
||||
Height="10"
|
||||
Margin="0,4,0,0"
|
||||
Value="{Binding Progress.Percent}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
||||
</ItemsControl.ItemTemplate>
|
||||
|
||||
</ItemsControl>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
</UserControl>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user