Usuário com melhor resposta
ListView não alinha coluna

Pergunta
-
Estou usando WPF e C# com a versão 4 do Framework .Net.
Não estou conseguindo alinhar uma coluna do ListView à direita. Já tentei de tudo, inclusive Templates.
Segue código WPF:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <ListView ItemsSource="{Binding}" x:Name="listViewFiles"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn DisplayMemberBinding="{Binding Path=Code}" Header="Código" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Header="Título" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Description}" Header="Descrição" Width="auto" /> <!-- Coluna de data/hora formatada --> <GridViewColumn DisplayMemberBinding="{Binding Path=LastRevision, StringFormat='dd/MM/yyyy-HH:mm:ss'}" Header="Última revisão" Width="auto" /> <GridViewColumn Header="Tamanho" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Size, StringFormat='n2'}" HorizontalAlignment="Right" Block.TextAlignment="Right" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> </Window>
Vladimir
Respostas
-
- Marcado como Resposta Vlad Rech terça-feira, 31 de janeiro de 2012 15:21
-
Valeu. Na verdade, resolve parte do problema uma vez que eu preciso mudar para DataGrid e não mais ListView.
Por outro lado, encontrei uma solução para parte do problema que é definir a propriedade "width" do TextBlock e remover da definição da GridViewColumn.
Sinto que terei vários problemas com XAML...<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <ListView ItemsSource="{Binding}" x:Name="listViewFiles" HorizontalAlignment="Right"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn DisplayMemberBinding="{Binding Path=Code}" Header="Código" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Header="Título" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Description}" Header="Descrição" Width="auto" /> <!-- Coluna de data/hora formatada --> <GridViewColumn DisplayMemberBinding="{Binding Path=LastRevision, StringFormat='dd/MM/yyyy-HH:mm:ss'}" Header="Última revisão" Width="auto" /> <GridViewColumn Header="Tamanho"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Size, StringFormat='n2'}" HorizontalAlignment="Right" Block.TextAlignment="Right" Width="120" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> </Window>
Vladimir- Marcado como Resposta Vlad Rech terça-feira, 31 de janeiro de 2012 15:21
Todas as Respostas
-
Finalmente alguém no Fórum WPF (:
Segue a solução do seu problema
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <ListView ItemsSource="{Binding}" x:Name="listViewFiles" HorizontalAlignment="Right"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn DisplayMemberBinding="{Binding Path=Code}" Header="Código" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Header="Título" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Description}" Header="Descrição" Width="auto" /> <!-- Coluna de data/hora formatada --> <GridViewColumn DisplayMemberBinding="{Binding Path=LastRevision, StringFormat='dd/MM/yyyy-HH:mm:ss'}" Header="Última revisão" Width="auto" /> <GridViewColumn Header="Tamanho" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Size, StringFormat='n2'}" HorizontalAlignment="Right" Block.TextAlignment="Right" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> </Window>
Apenas utiliezei
HorizontalAlignment="Right"
Artigos e Dicas VB.NET, C#, SQL, Report viewer e WPF
Siga @PauloHDSousa -
-
Continuemos, você quer que apenas a coluna TAMANHO fique no fim da janela ?
Artigos e Dicas VB.NET, C#, SQL, Report viewer e WPF
Siga @PauloHDSousa -
-
- Marcado como Resposta Vlad Rech terça-feira, 31 de janeiro de 2012 15:21
-
Valeu. Na verdade, resolve parte do problema uma vez que eu preciso mudar para DataGrid e não mais ListView.
Por outro lado, encontrei uma solução para parte do problema que é definir a propriedade "width" do TextBlock e remover da definição da GridViewColumn.
Sinto que terei vários problemas com XAML...<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <ListView ItemsSource="{Binding}" x:Name="listViewFiles" HorizontalAlignment="Right"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn DisplayMemberBinding="{Binding Path=Code}" Header="Código" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Header="Título" Width="auto" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Description}" Header="Descrição" Width="auto" /> <!-- Coluna de data/hora formatada --> <GridViewColumn DisplayMemberBinding="{Binding Path=LastRevision, StringFormat='dd/MM/yyyy-HH:mm:ss'}" Header="Última revisão" Width="auto" /> <GridViewColumn Header="Tamanho"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Size, StringFormat='n2'}" HorizontalAlignment="Right" Block.TextAlignment="Right" Width="120" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> </Window>
Vladimir- Marcado como Resposta Vlad Rech terça-feira, 31 de janeiro de 2012 15:21
-
-