Use Binding instead of RelativeResource for code quality

This commit is contained in:
Jack251970 2025-08-17 14:30:03 +08:00
parent b097aa0c29
commit 6751942179
2 changed files with 29 additions and 30 deletions

View file

@ -24,14 +24,14 @@
MaxWidth="96"
MaxHeight="96"
Margin="5 12 8 0"
Source="{Binding PreviewImage, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Source="{Binding PreviewImage, IsAsync=True, Mode=OneWay}" />
<Grid Grid.Row="1">
<TextBlock
Margin="5 6 5 16"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Style="{DynamicResource PreviewItemTitleStyle}"
Text="{Binding FileName}"
Text="{Binding FileName, Mode=OneTime}"
TextAlignment="Center"
TextWrapping="Wrap" />
</Grid>
@ -47,7 +47,7 @@
<TextBlock
Margin="5 8 8 8"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding FilePath}" />
Text="{Binding FilePath, Mode=OneTime}" />
<Rectangle
Width="Auto"
Height="1"
@ -60,9 +60,9 @@
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding FileSizeVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Value="Collapsed" />
<Condition Binding="{Binding CreatedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Value="Collapsed" />
<Condition Binding="{Binding LastModifiedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Value="Collapsed" />
<Condition Binding="{Binding FileSizeVisibility}" Value="Collapsed" />
<Condition Binding="{Binding CreatedAtVisibility}" Value="Collapsed" />
<Condition Binding="{Binding LastModifiedAtVisibility}" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed" />
</MultiDataTrigger>
@ -70,7 +70,7 @@
</Style>
</Rectangle.Style>
</Rectangle>
<Grid Margin="0 10 0 0" Visibility="{Binding FileInfoVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}">
<Grid Margin="0 10 0 0" Visibility="{Binding FileInfoVisibility, Mode=OneTime}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
@ -88,7 +88,7 @@
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{DynamicResource FileSize}"
TextWrapping="Wrap"
Visibility="{Binding FileSizeVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding FileSizeVisibility, Mode=OneTime}" />
<TextBlock
Grid.Row="0"
Grid.Column="1"
@ -96,9 +96,9 @@
HorizontalAlignment="Right"
VerticalAlignment="Top"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding FileSize, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Mode=OneWay}"
Text="{Binding FileSize, Mode=OneWay}"
TextWrapping="Wrap"
Visibility="{Binding FileSizeVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding FileSizeVisibility, Mode=OneTime}" />
<TextBlock
Grid.Row="1"
@ -108,7 +108,7 @@
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{DynamicResource Created}"
TextWrapping="Wrap"
Visibility="{Binding CreatedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding CreatedAtVisibility, Mode=OneTime}" />
<TextBlock
Grid.Row="1"
Grid.Column="1"
@ -116,9 +116,9 @@
HorizontalAlignment="Right"
VerticalAlignment="Top"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding CreatedAt, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"
Text="{Binding CreatedAt, Mode=OneWay}"
TextWrapping="Wrap"
Visibility="{Binding CreatedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding CreatedAtVisibility, Mode=OneTime}" />
<TextBlock
Grid.Row="2"
@ -128,7 +128,7 @@
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{DynamicResource LastModified}"
TextWrapping="Wrap"
Visibility="{Binding LastModifiedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding LastModifiedAtVisibility, Mode=OneTime}" />
<TextBlock
Grid.Row="2"
Grid.Column="1"
@ -136,9 +136,9 @@
HorizontalAlignment="Right"
VerticalAlignment="Top"
Style="{DynamicResource PreviewItemSubTitleStyle}"
Text="{Binding LastModifiedAt, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"
Text="{Binding LastModifiedAt, Mode=OneWay}"
TextWrapping="Wrap"
Visibility="{Binding LastModifiedAtVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Visibility="{Binding LastModifiedAtVisibility, Mode=OneTime}" />
</Grid>
</StackPanel>
</Grid>

View file

@ -23,21 +23,20 @@ public partial class PreviewPanel : UserControl
public string FilePath { get; }
public string FileName { get; }
public string FileSize { get; private set; } = Main.Context.API.GetTranslation("plugin_explorer_plugin_tooltip_more_info_unknown");
public string CreatedAt { get; } = "";
public string LastModifiedAt { get; } = "";
private ImageSource _previewImage = new BitmapImage();
private Settings Settings { get; }
public ImageSource PreviewImage
{
get => _previewImage;
private set
{
_previewImage = value;
OnPropertyChanged();
}
}
[ObservableProperty]
private string _fileSize = Main.Context.API.GetTranslation("plugin_explorer_plugin_tooltip_more_info_unknown");
[ObservableProperty]
private string _createdAt = "";
[ObservableProperty]
private string _lastModifiedAt = "";
[ObservableProperty]
private ImageSource _previewImage = new BitmapImage();
private Settings Settings { get; }
public Visibility FileSizeVisibility => Settings.ShowFileSizeInPreviewPanel
? Visibility.Visible