feat: add CopyText;

This commit is contained in:
Zhang Dian
2025-01-21 19:54:02 +08:00
parent 3fceec143d
commit 232ce71677
2 changed files with 33 additions and 34 deletions

View File

@@ -21,7 +21,6 @@
<HeaderedContentControl.HeaderTemplate> <HeaderedContentControl.HeaderTemplate>
<DataTemplate DataType="x:String"> <DataTemplate DataType="x:String">
<SelectableTextBlock <SelectableTextBlock
Margin="0,16,0,0"
Classes="H3" Classes="H3"
Text="{Binding}" Text="{Binding}"
Theme="{DynamicResource TitleSelectableTextBlock}" /> Theme="{DynamicResource TitleSelectableTextBlock}" />
@@ -31,21 +30,36 @@
<DataTemplate> <DataTemplate>
<DataGrid IsReadOnly="True" ItemsSource="{Binding}"> <DataGrid IsReadOnly="True" ItemsSource="{Binding}">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTemplateColumn Width="*" Header="ResourceKey"> <DataGridTemplateColumn Width="300" Header="ResourceKey">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="vm:VariableItemViewModel"> <DataTemplate DataType="vm:VariableItemViewModel">
<Panel> <SelectableTextBlock
<SelectableTextBlock Margin="12,0"
Margin="12,0" VerticalAlignment="Center"
VerticalAlignment="Center" Text="{Binding ResourceKey}" />
Text="{Binding ResourceKey}" /> </DataTemplate>
<Button </DataGridTemplateColumn.CellTemplate>
HorizontalAlignment="Right" </DataGridTemplateColumn>
Command="{Binding $parent[pages:VariablesDemo].Copy}" <DataGridTemplateColumn Width="200" Header="Value">
CommandParameter="{Binding ResourceKey}" <DataGridTemplateColumn.CellTemplate>
Theme="{DynamicResource IconBorderlessButton}" <DataTemplate DataType="vm:VariableItemViewModel">
Content="{StaticResource SemiIconCopy}" /> <SelectableTextBlock
</Panel> Margin="12,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Value}"
TextWrapping="Wrap" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="100" Header="CopyText">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="vm:VariableItemViewModel">
<Button
Command="{Binding $parent[pages:VariablesDemo].Copy}"
CommandParameter="{Binding CopyText}"
Theme="{DynamicResource IconBorderlessButton}"
Content="{StaticResource SemiIconCopy}" />
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
@@ -56,26 +70,6 @@
IsVisible="False" IsVisible="False"
CanUserSort="False" CanUserSort="False"
Header="Description" /> Header="Description" />
<DataGridTemplateColumn Width="300" Header="Value">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="vm:VariableItemViewModel">
<Panel>
<SelectableTextBlock
Margin="12,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Value}"
TextWrapping="Wrap" />
<Button
HorizontalAlignment="Right"
Command="{Binding $parent[pages:VariablesDemo].Copy}"
CommandParameter="{Binding Value}"
Theme="{DynamicResource IconBorderlessButton}"
Content="{StaticResource SemiIconCopy}" />
</Panel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
</DataTemplate> </DataTemplate>

View File

@@ -76,6 +76,11 @@ public partial class VariableItemViewModel : ObservableObject
[ObservableProperty] private string? _description; [ObservableProperty] private string? _description;
[ObservableProperty] private string? _value; [ObservableProperty] private string? _value;
public string CopyText =>
$"""
<StaticResource x:Key="" ResourceKey="{ResourceKey}" />
""";
public VariableItemViewModel(string description, object value, string resourceKey) public VariableItemViewModel(string description, object value, string resourceKey)
{ {
ResourceKey = resourceKey; ResourceKey = resourceKey;