Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
XAML Right Align Grid column
Message
From
07/01/2013 13:10:44
 
 
To
07/01/2013 12:22:17
General information
Forum:
ASP.NET
Category:
Windows Presentation Foundation (WPF)
Miscellaneous
Thread ID:
01561598
Message ID:
01561608
Views:
40
>Hi,
>
>I have the following Datagrid defined:
>
>
                        <DataGrid AutoGenerateColumns="False" Grid.Row="5" Grid.Column="1" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="grdInvoiceDetails" VerticalAlignment="Stretch" Width="Auto" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Mode=default}" SelectionMode="Single" GridLinesVisibility="None" HeadersVisibility="Column" Grid.ColumnSpan="2" Style="{DynamicResource HDSDataGridStyle}" CanUserAddRows="False" CanUserDeleteRows="False" SelectionUnit="Cell" Grid.RowSpan="1">
>                            <DataGrid.Columns>
>                                <DataGridComboBoxColumn Header="Charge Type" Width="*" DisplayMemberPath="cty_name" SelectedValuePath="cty_pk" SelectedValueBinding="{Binding ivd_ctyfk, Mode=Default}"/>
>                                <DataGridTextColumn Header="Amount" Width="*" Binding="{Binding ivd_amount, Mode=default}"/>
>                            </DataGrid.Columns>
>                        </DataGrid>
>
>
>I want the second column to be right aligned. I found this suggestion on the net:
>
>
<UserControl.Resources>
>      <Style x:Key="AlignRight" TargetType="Data:DataGridCell">
>          <Setter Property="HorizontalContentAlignment" Value="Right" />
>     </Style>
></UserControl.Resources> 
>
><Data:DataGridTextColumn Header="Amount" Width="90" Binding="{Binding Amount}" IsReadOnly="True" CellStyle="{StaticResource AlignRight}"></Data:DataGridTextColumn> 
>
>
>If I try this I get this error:
>
>The attachable property 'Resources' was not found in type 'UserControl'.
>
>Can anyone explain this to me please?

Not sure where you put the resource. Something like this should work:
   <DataGrid>
      <DataGrid.Resources>
        <Style x:Key="AlignRight" TargetType="DataGridCell">
          <Setter Property="HorizontalContentAlignment" Value="Right" />
        </Style>
      </DataGrid.Resources>
      <DataGrid.Columns>
        <DataGridTextColumn CellStyle="{StaticResource AlignRight}">
           </DataGridTextColumn>
      </DataGrid.Columns>
    </DataGrid>
Or, if the alignment is only used for the one column you could just do it inline:
    <DataGrid>
      <DataGrid.Columns>
        <DataGridTextColumn >
          <DataGridTextColumn.CellStyle>
            <Style>
              <Setter Property="FrameworkElement.HorizontalAlignment" Value="Right"></Setter>
            </Style>
          </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
      </DataGrid.Columns>
    </DataGrid>
Disclaimer: Didn't actually try this - just my understanding of how it works.....
Previous
Reply
Map
View

Click here to load this message in the networking platform