Adicionadas funcionalidades de manipulação de eventos de clique do mouse
(`PreviewMouseLeftButtonDown` e `PreviewMouseRightButtonDown`) e suporte
para copiar informações do `ListView` com atalhos de teclado (`Ctrl+C`) e
menu de contexto ("Copiar coluna"). Implementado com `InputBindings`,
`CommandBindings` e `ContextMenu`.
Alterada a exibição das colunas do `GridView` para usar `TextBox` somente
leitura, permitindo seleção de texto, com customizações visuais como
cor de texto (`Foreground="#FF042271"`), fundo transparente e sem bordas.
Adicionado estilo personalizado para itens do `ListView`, incluindo
captura de eventos de tecla pressionada (`KeyDown`) e remoção do evento
de clique duplo do mouse (`MouseDoubleClick`).
Atualizadas colunas adicionais (`Unidade`, `Instalação`, `CNPJ`, `Razão
Social`) para seguir o mesmo padrão de somente leitura e aparência.
Essas mudanças melhoram a experiência do usuário, tornando a interface
mais prática e visualmente consistente.
269 lines
14 KiB
XML
269 lines
14 KiB
XML
<Window x:Class="BD_empresa.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
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:local="clr-namespace:BD_empresa"
|
|
mc:Ignorable="d"
|
|
Loaded="Window_Loaded"
|
|
Title="Pesquisar Unidades" Height="650" Width="800">
|
|
<Grid>
|
|
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Margin="10" Grid.Row="0" Grid.Column="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Image Source="/marca.png"
|
|
Grid.Row="0" Grid.Column="0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Margin="10"
|
|
Height="50"
|
|
RenderOptions.BitmapScalingMode="HighQuality" />
|
|
<TextBlock Text="Pesquisar Empresa:" Margin="0,0,10,0" VerticalAlignment="Center" Grid.Column="1"/>
|
|
<Button Content="Recarregar dados do BD"
|
|
Margin="10"
|
|
Grid.Column="3"
|
|
Command="{Binding RefreshCommand}"
|
|
VerticalAlignment="Center" />
|
|
<TextBox
|
|
x:Name="txtEmpresaSearch"
|
|
Margin="0,0,10,0"
|
|
VerticalAlignment="Center"
|
|
Grid.Column="2"
|
|
Text="{Binding SearchEmpresaText, UpdateSourceTrigger=PropertyChanged}" />
|
|
</Grid>
|
|
<TextBlock Text="{Binding ErrorMessage}"
|
|
Foreground="Red"
|
|
Margin="10,5,10,0"
|
|
Grid.Row="1"
|
|
Visibility="{Binding ErrorMessage, Converter={StaticResource StringToVisibilityConverter}}" />
|
|
<Grid Grid.Row="2">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Text="Empresas:" Margin="10,0,10,0" FontWeight="Bold" Grid.Row="0"/>
|
|
<ListView ItemsSource="{Binding Clientes}" Height="213" Margin="10" SelectedItem="{Binding SelectedCliente, Mode=TwoWay}" Grid.Row="1"
|
|
PreviewMouseLeftButtonDown="UnidadesListView_PreviewMouseLeftButtonDown"
|
|
PreviewMouseRightButtonDown="UnidadesListView_PreviewMouseRightButtonDown">
|
|
<ListView.InputBindings>
|
|
<KeyBinding Key="C" Modifiers="Control" Command="ApplicationCommands.Copy"/>
|
|
</ListView.InputBindings>
|
|
<ListView.CommandBindings>
|
|
<CommandBinding Command="ApplicationCommands.Copy" Executed="CopyCommand_Executed"/>
|
|
</ListView.CommandBindings>
|
|
<ListView.ContextMenu>
|
|
<ContextMenu>
|
|
<MenuItem Header="Copiar coluna" Click="CopyMenu_Click"/>
|
|
</ContextMenu>
|
|
</ListView.ContextMenu>
|
|
<ListView.View>
|
|
<GridView>
|
|
<!-- Demais colunas (TextBox readonly para seleção) -->
|
|
<GridViewColumn Header="Gestão" Width="70">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Gestao}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
<!-- Demais colunas (TextBox readonly para seleção) -->
|
|
<GridViewColumn Header="Cliente" Width="400">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Cliente}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
</GridView>
|
|
</ListView.View>
|
|
<ListView.ItemContainerStyle>
|
|
<Style TargetType="ListViewItem">
|
|
<!-- removido MouseDoubleClick -->
|
|
<!--<EventSetter Event="MouseDoubleClick" Handler="UnidadeListView_MouseDoubleClick" />-->
|
|
<EventSetter Event="KeyDown" Handler="UnidadeListView_EnterKeyDown" />
|
|
</Style>
|
|
</ListView.ItemContainerStyle>
|
|
</ListView>
|
|
<Grid Visibility="{Binding IsLoading, Converter={StaticResource BoolToVisibilityConverter}}"
|
|
Background="#80FFFFFF">
|
|
<ProgressBar IsIndeterminate="True" Height="30" Width="200" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
|
</Grid>
|
|
</Grid>
|
|
<Grid Grid.Row="3">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<Grid Margin="10" Grid.Row="0" Grid.Column="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="Pesquisar Unidade:" Margin="0,0,10,0" Grid.Row="1"/>
|
|
<TextBox x:Name="txtUnidadeSearch"
|
|
Margin="0,0,10,0"
|
|
VerticalAlignment="Center"
|
|
Grid.Column="2"
|
|
Text="{Binding SearchUnidadeText, UpdateSourceTrigger=PropertyChanged}" />
|
|
</Grid>
|
|
<!-- texto atualizado: remove menção ao duplo-clique -->
|
|
<TextBlock Text="Unidades da empresa selecionada (Clique no ícone da pasta para abrir o caminho):" Margin="10,0,10,0" FontWeight="Bold" Grid.Row="1"/>
|
|
|
|
<ListView ItemsSource="{Binding UnidadesSelecionadas}" Margin="10" Grid.Row="2"
|
|
x:Name="UnidadesListView"
|
|
PreviewMouseLeftButtonDown="UnidadesListView_PreviewMouseLeftButtonDown"
|
|
PreviewMouseRightButtonDown="UnidadesListView_PreviewMouseRightButtonDown">
|
|
<ListView.InputBindings>
|
|
<KeyBinding Key="C" Modifiers="Control" Command="ApplicationCommands.Copy"/>
|
|
</ListView.InputBindings>
|
|
<ListView.CommandBindings>
|
|
<CommandBinding Command="ApplicationCommands.Copy" Executed="CopyCommand_Executed"/>
|
|
</ListView.CommandBindings>
|
|
<ListView.ContextMenu>
|
|
<ContextMenu>
|
|
<MenuItem Header="Copiar coluna" Click="CopyMenu_Click"/>
|
|
</ContextMenu>
|
|
</ListView.ContextMenu>
|
|
|
|
<ListView.View>
|
|
<GridView>
|
|
<!-- Coluna do ícone de pasta (pequena) -->
|
|
<GridViewColumn Width="36" Header="">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<!-- Botão com ícone (emoji) — simples e confiável.
|
|
Pode trocar por uma imagem se preferir (Image/Path). -->
|
|
<Button Click="OpenFolderButton_Click"
|
|
ToolTip="Abrir pasta da unidade"
|
|
Padding="2"
|
|
Margin="2"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Cursor="Hand"
|
|
Foreground="#FF042271"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
DataContext="{Binding}">
|
|
<TextBlock Text="📁" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
|
</Button>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
|
|
<!-- Demais colunas (TextBox readonly para seleção) -->
|
|
<GridViewColumn Header="Unidade" Width="200">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Unidade}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
|
|
<GridViewColumn Header="Instalação" Width="120">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Codigo_Instalacao}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
|
|
<GridViewColumn Header="CNPJ" Width="120">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding CNPJ_CPF}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
|
|
<GridViewColumn Header="Razão Social" Width="Auto">
|
|
<GridViewColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Razao_Social}"
|
|
IsReadOnly="True"
|
|
Foreground="#FF042271"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Padding="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
Cursor="IBeam"
|
|
Focusable="True"/>
|
|
</DataTemplate>
|
|
</GridViewColumn.CellTemplate>
|
|
</GridViewColumn>
|
|
</GridView>
|
|
</ListView.View>
|
|
|
|
<ListView.ItemContainerStyle>
|
|
<Style TargetType="ListViewItem">
|
|
<!-- removido MouseDoubleClick -->
|
|
<!--<EventSetter Event="MouseDoubleClick" Handler="UnidadeListView_MouseDoubleClick" />-->
|
|
<EventSetter Event="KeyDown" Handler="UnidadeListView_EnterKeyDown" />
|
|
</Style>
|
|
</ListView.ItemContainerStyle>
|
|
</ListView>
|
|
|
|
</Grid>
|
|
</Grid>
|
|
</Window> |