lunedì 10 gennaio 2011

WPF - ListView - GridViewColumn formatting

C# 4.0
In una ListView si deve formattare la colonna contenente un importo, in modo tale che in visualizzazione questi valori siano allineati a destra e con la formattazione in valuta prevista dal sistema operativo.
Si deve quindi creare un data  template specifico in questo modo (siamo nello XAML di una view WPF)
<Window.Resources>
       
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
        <DataTemplate x:Key="amount">
            <TextBlock HorizontalAlignment="Right"
Text="{Binding Amount, StringFormat=C2}"/>
        </DataTemplate>
</Window.Resources>

Poi nella list view si deve associare alla colonna interessata il template creato poc’anzi:
<ListView Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="6" Margin="10"
ItemsSource="{Binding SelectedScaleReceipt.NoteScales}" util:GridViewSort.AutoSort="True" 
       VerticalContentAlignment="Center">
<ListView.View>
             <GridView>
             <GridViewColumn CellTemplate="{StaticResource amount}" Width="150" Header=”Importo”/>
              </GridView>
       </ListView.View>
</ListView>