- PriceLookupService: eBay live data → saved listing history → AI estimate, each result labelled by source so the user knows how reliable it is - Revalue row: new "Check eBay" button fetches suggestion and pre-populates the price field; shows source label beneath (or "No suggestion available") - Category auto-fill: AutoFillCategoryAsync takes the top eBay category suggestion and fills the field automatically after photo analysis or AI title generation; dropdown stays visible so user can override Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
448 lines
26 KiB
XML
448 lines
26 KiB
XML
<UserControl x:Class="EbayListingTool.Views.SavedListingsView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
|
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks">
|
|
|
|
<UserControl.Resources>
|
|
|
|
<Style x:Key="CardBorder" TargetType="Border">
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="CornerRadius" Value="8"/>
|
|
<Setter Property="Margin" Value="0,0,0,10"/>
|
|
<Setter Property="Padding" Value="0"/>
|
|
<Setter Property="BorderBrush" Value="{DynamicResource MahApps.Brushes.Gray8}"/>
|
|
<Setter Property="Background" Value="{DynamicResource MahApps.Brushes.Gray10}"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
</Style>
|
|
|
|
<Style x:Key="SelectedCardBorder" TargetType="Border" BasedOn="{StaticResource CardBorder}">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource MahApps.Brushes.Accent}"/>
|
|
<Setter Property="BorderThickness" Value="2"/>
|
|
</Style>
|
|
|
|
<Style x:Key="CardActionBtn" TargetType="Button"
|
|
BasedOn="{StaticResource MahApps.Styles.Button.Square}">
|
|
<Setter Property="Height" Value="28"/>
|
|
<Setter Property="Padding" Value="10,0"/>
|
|
<Setter Property="FontSize" Value="11"/>
|
|
</Style>
|
|
|
|
<Style x:Key="DetailLabel" TargetType="TextBlock">
|
|
<Setter Property="FontSize" Value="10"/>
|
|
<Setter Property="FontWeight" Value="SemiBold"/>
|
|
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Accent}"/>
|
|
<Setter Property="Margin" Value="0,10,0,3"/>
|
|
</Style>
|
|
|
|
<Style x:Key="SearchBox" TargetType="TextBox"
|
|
BasedOn="{StaticResource MahApps.Styles.TextBox}">
|
|
<Setter Property="FontSize" Value="12"/>
|
|
<Setter Property="Height" Value="30"/>
|
|
</Style>
|
|
|
|
</UserControl.Resources>
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="320" MinWidth="220"/>
|
|
<ColumnDefinition Width="4"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- ================================================================
|
|
LEFT — Listings list
|
|
================================================================ -->
|
|
<Grid Grid.Column="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Header -->
|
|
<Border Grid.Row="0" Padding="14,10"
|
|
BorderThickness="0,0,0,1"
|
|
BorderBrush="{DynamicResource MahApps.Brushes.Gray8}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="BookmarkMultiple" Width="14" Height="14"
|
|
Margin="0,0,7,0" VerticalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Accent}"/>
|
|
<TextBlock x:Name="ListingCountText" Text="0 saved listings"
|
|
FontSize="12" FontWeight="SemiBold"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray2}"
|
|
VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<Button Grid.Column="1" x:Name="OpenExportsDirBtn"
|
|
Click="OpenExportsDir_Click"
|
|
Style="{StaticResource CardActionBtn}"
|
|
ToolTip="Open exports folder in Explorer">
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="FolderOpen" Width="12" Height="12"
|
|
Margin="0,0,4,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Open folder" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Search/filter box -->
|
|
<Border Grid.Row="1" Padding="10,8,10,6"
|
|
BorderThickness="0,0,0,1"
|
|
BorderBrush="{DynamicResource MahApps.Brushes.Gray9}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<iconPacks:PackIconMaterial Grid.Column="0" Kind="Magnify"
|
|
Width="13" Height="13"
|
|
Margin="0,0,7,0"
|
|
VerticalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
|
|
<TextBox Grid.Column="1" x:Name="SearchBox"
|
|
Style="{StaticResource SearchBox}"
|
|
mah:TextBoxHelper.Watermark="Filter listings…"
|
|
mah:TextBoxHelper.ClearTextButton="True"
|
|
TextChanged="SearchBox_TextChanged"/>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Card list -->
|
|
<ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto"
|
|
Padding="10,8">
|
|
<Grid>
|
|
<!-- Empty state for no saved listings -->
|
|
<StackPanel x:Name="EmptyCardState"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Margin="0,40,0,0"
|
|
Visibility="Collapsed">
|
|
<Border Width="64" Height="64"
|
|
CornerRadius="32"
|
|
HorizontalAlignment="Center"
|
|
Margin="0,0,0,16"
|
|
Background="{DynamicResource MahApps.Brushes.Gray9}">
|
|
<iconPacks:PackIconMaterial Kind="BookmarkPlusOutline"
|
|
Width="32" Height="32"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
|
|
</Border>
|
|
<TextBlock Text="No saved listings yet"
|
|
FontSize="13" FontWeight="SemiBold"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray4}"
|
|
HorizontalAlignment="Center"
|
|
Margin="0,0,0,6"/>
|
|
<TextBlock Text="Analyse a photo and click Save Listing"
|
|
FontSize="11"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray6}"
|
|
HorizontalAlignment="Center"
|
|
TextWrapping="Wrap"
|
|
TextAlignment="Center"
|
|
MaxWidth="200"/>
|
|
</StackPanel>
|
|
|
|
<!-- No filter results state -->
|
|
<StackPanel x:Name="EmptyFilterState"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Margin="0,40,0,0"
|
|
Visibility="Collapsed">
|
|
<iconPacks:PackIconMaterial Kind="MagnifyClose"
|
|
Width="36" Height="36"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray6}"
|
|
Margin="0,0,0,12"/>
|
|
<TextBlock Text="No listings match your search"
|
|
FontSize="12"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"
|
|
HorizontalAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel x:Name="CardPanel"/>
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
|
|
<!-- Splitter -->
|
|
<GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch"
|
|
Background="{DynamicResource MahApps.Brushes.Gray8}"/>
|
|
|
|
<!-- ================================================================
|
|
RIGHT — Detail panel
|
|
================================================================ -->
|
|
<Grid Grid.Column="2">
|
|
|
|
<!-- Empty state -->
|
|
<StackPanel x:Name="EmptyDetail" HorizontalAlignment="Center"
|
|
VerticalAlignment="Center">
|
|
<iconPacks:PackIconMaterial Kind="BookmarkOutline" Width="48" Height="48"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray7}"
|
|
Margin="0,0,0,14"/>
|
|
<TextBlock Text="Select a saved listing" FontSize="14"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"
|
|
HorizontalAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
<!-- Detail content -->
|
|
<ScrollViewer x:Name="DetailPanel" Visibility="Collapsed" Opacity="0"
|
|
VerticalScrollBarVisibility="Auto" Padding="18,14">
|
|
<StackPanel>
|
|
|
|
<!-- Title + price row -->
|
|
<Grid Margin="0,0,0,8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock x:Name="DetailTitle" Grid.Column="0"
|
|
FontSize="17" FontWeight="Bold" TextWrapping="Wrap"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray1}"/>
|
|
|
|
<!-- Price display + quick revalue -->
|
|
<StackPanel Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Top">
|
|
|
|
<!-- Normal price badge + Revalue button -->
|
|
<StackPanel x:Name="PriceDisplayRow" Orientation="Horizontal">
|
|
<Border Background="{DynamicResource MahApps.Brushes.Accent}"
|
|
CornerRadius="6" Padding="10,4">
|
|
<TextBlock x:Name="DetailPrice"
|
|
FontSize="16" FontWeight="Bold" Foreground="White"/>
|
|
</Border>
|
|
<Button x:Name="RevalueBtn" Click="RevalueBtn_Click"
|
|
Height="28" Padding="8,0" Margin="6,0,0,0"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
ToolTip="Quick-change the price">
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="CurrencyGbp" Width="11" Height="11"
|
|
Margin="0,0,4,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Revalue" FontSize="11" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<!-- Inline revalue editor (hidden by default) -->
|
|
<StackPanel x:Name="RevalueRow" Orientation="Vertical"
|
|
Visibility="Collapsed" Margin="0,4,0,0">
|
|
<StackPanel Orientation="Horizontal">
|
|
<mah:NumericUpDown x:Name="RevaluePrice"
|
|
Minimum="0" Maximum="99999"
|
|
StringFormat="F2" Interval="0.5"
|
|
Width="110" Height="30"/>
|
|
<Button x:Name="CheckEbayBtn" Click="CheckEbayBtn_Click"
|
|
Height="30" Padding="8,0" Margin="6,0,4,0"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
ToolTip="Check eBay for a suggested price">
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial x:Name="CheckEbayIcon"
|
|
Kind="Magnify" Width="11" Height="11"
|
|
Margin="0,0,4,0" VerticalAlignment="Center"/>
|
|
<TextBlock x:Name="CheckEbayText" Text="Check eBay"
|
|
FontSize="11" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button>
|
|
<Button Click="RevalueSave_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
|
|
Height="30" Padding="10,0" Margin="0,0,4,0"
|
|
ToolTip="Save new price">
|
|
<iconPacks:PackIconMaterial Kind="Check" Width="13" Height="13"/>
|
|
</Button>
|
|
<Button Click="RevalueCancel_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
Height="30" Padding="8,0"
|
|
ToolTip="Cancel">
|
|
<iconPacks:PackIconMaterial Kind="Close" Width="11" Height="11"/>
|
|
</Button>
|
|
</StackPanel>
|
|
<TextBlock x:Name="PriceSuggestionLabel"
|
|
FontSize="10" Margin="0,5,0,0"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"
|
|
Visibility="Collapsed" TextWrapping="Wrap"/>
|
|
</StackPanel>
|
|
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- Meta row: category · date -->
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,0,14">
|
|
<iconPacks:PackIconMaterial Kind="Tag" Width="11" Height="11"
|
|
Margin="0,0,4,0" VerticalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
|
|
<TextBlock x:Name="DetailCategory" FontSize="11"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray4}"
|
|
VerticalAlignment="Center"/>
|
|
<TextBlock Text=" · " FontSize="11"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray6}"
|
|
VerticalAlignment="Center"/>
|
|
<iconPacks:PackIconMaterial Kind="ClockOutline" Width="11" Height="11"
|
|
Margin="0,0,4,0" VerticalAlignment="Center"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
|
|
<TextBlock x:Name="DetailDate" FontSize="11"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray4}"
|
|
VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
<!-- Photos strip -->
|
|
<TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}"/>
|
|
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Disabled"
|
|
Margin="0,0,0,4">
|
|
<WrapPanel x:Name="DetailPhotosPanel" Orientation="Horizontal"/>
|
|
</ScrollViewer>
|
|
|
|
<!-- Condition notes -->
|
|
<TextBlock x:Name="DetailConditionRow" Visibility="Collapsed">
|
|
<TextBlock.Inlines>
|
|
<Run FontWeight="SemiBold" Text="Condition: "/>
|
|
<Run x:Name="DetailCondition"/>
|
|
</TextBlock.Inlines>
|
|
</TextBlock>
|
|
|
|
<!-- Description -->
|
|
<TextBlock Text="DESCRIPTION" Style="{StaticResource DetailLabel}"/>
|
|
<Border BorderThickness="1" CornerRadius="4" Padding="10,8"
|
|
BorderBrush="{DynamicResource MahApps.Brushes.Gray8}"
|
|
Background="{DynamicResource MahApps.Brushes.Gray10}"
|
|
Margin="0,0,0,14">
|
|
<TextBlock x:Name="DetailDescription"
|
|
TextWrapping="Wrap" FontSize="12"
|
|
Foreground="{DynamicResource MahApps.Brushes.Gray2}"/>
|
|
</Border>
|
|
|
|
<!-- Action buttons -->
|
|
<WrapPanel Orientation="Horizontal">
|
|
<Button Click="EditListing_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
|
|
Height="34" Padding="14,0" Margin="0,0,8,6">
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="Pencil" Width="13" Height="13"
|
|
Margin="0,0,6,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Edit" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button>
|
|
<Button Click="OpenFolderDetail_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
|
|
Height="34" Padding="14,0" Margin="0,0,8,6">
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="FolderOpen" Width="13" Height="13"
|
|
Margin="0,0,6,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Open Export Folder" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button>
|
|
<Button Click="CopyTitle_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
Height="34" Padding="12,0" Margin="0,0,8,6">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12"
|
|
Margin="0,0,5,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Copy Title" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
<Button Click="CopyDescription_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
Height="34" Padding="12,0" Margin="0,0,8,6">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12"
|
|
Margin="0,0,5,0" VerticalAlignment="Center"/>
|
|
<TextBlock Text="Copy Description" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
<Button Click="DeleteListing_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
Height="34" Padding="12,0" Margin="0,0,0,6">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<iconPacks:PackIconMaterial Kind="TrashCanOutline" Width="13" Height="13"
|
|
Margin="0,0,5,0" VerticalAlignment="Center"
|
|
Foreground="OrangeRed"/>
|
|
<TextBlock Text="Delete" VerticalAlignment="Center"
|
|
Foreground="OrangeRed"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
</WrapPanel>
|
|
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<!-- Edit panel — shown in place of DetailPanel when editing -->
|
|
<ScrollViewer x:Name="EditPanel" Visibility="Collapsed"
|
|
VerticalScrollBarVisibility="Auto" Padding="18,14">
|
|
<StackPanel>
|
|
|
|
<!-- Title -->
|
|
<TextBlock Text="TITLE" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<TextBox x:Name="EditTitle" FontSize="13" Margin="0,0,0,4"
|
|
mah:TextBoxHelper.Watermark="Listing title"/>
|
|
|
|
<!-- Price + Category -->
|
|
<Grid Margin="0,0,0,4">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="10"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0">
|
|
<TextBlock Text="PRICE (£)" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<mah:NumericUpDown x:Name="EditPrice" Minimum="0" Maximum="99999"
|
|
StringFormat="F2" Interval="0.5" Value="0"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2">
|
|
<TextBlock Text="CATEGORY" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<TextBox x:Name="EditCategory" FontSize="12"
|
|
mah:TextBoxHelper.Watermark="e.g. Clothing, Shoes & Accessories"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- Condition notes -->
|
|
<TextBlock Text="CONDITION NOTES" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<TextBox x:Name="EditCondition" FontSize="12" Margin="0,0,0,4"
|
|
mah:TextBoxHelper.Watermark="Optional — e.g. minor scuff on base"/>
|
|
|
|
<!-- Description -->
|
|
<TextBlock Text="DESCRIPTION" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<TextBox x:Name="EditDescription" FontSize="12" Margin="0,0,0,4"
|
|
TextWrapping="Wrap" AcceptsReturn="True"
|
|
Height="130" VerticalScrollBarVisibility="Auto"/>
|
|
|
|
<!-- Photos -->
|
|
<TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
|
|
<TextBlock Text="First photo is the listing cover. Use ◀ ▶ to reorder."
|
|
FontSize="10" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
|
|
Margin="0,0,0,6"/>
|
|
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Disabled"
|
|
Margin="0,0,0,10">
|
|
<StackPanel x:Name="EditPhotosPanel" Orientation="Horizontal"/>
|
|
</ScrollViewer>
|
|
|
|
<!-- Save / Cancel -->
|
|
<StackPanel Orientation="Horizontal" Margin="0,2,0,0">
|
|
<Button x:Name="SaveEditBtn" Click="SaveEdit_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
|
|
Height="34" Padding="16,0" Margin="0,0,8,0"
|
|
Content="Save Changes"/>
|
|
<Button x:Name="CancelEditBtn" Click="CancelEdit_Click"
|
|
Style="{DynamicResource MahApps.Styles.Button.Square}"
|
|
Height="34" Padding="14,0"
|
|
Content="Cancel"/>
|
|
</StackPanel>
|
|
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|