2009-03-17 36 views
5

Tôi muốn áp dụng định dạng (căn chỉnh văn bản, định dạng cho tiền tệ 0000.00) cho các cột trong GridViewColumn.Định dạng văn bản WPF trong GridViewColumn

<GridViewColumn TextBlock.TextAlignment="Center" Width="80" DisplayMemberBinding="{Binding XPath=Name}"/> 

Ý tưởng là một trong những sau: Trong các cột (GridViewColumn) văn bản mà chúng tôi có thể áp dụng một định dạng cho ông (khay bên trái, phải, trung tâm, biện minh, vv).

Trong đoạn mã sau họ có thể nhìn thấy những nỗ lực khác nhau mà không có bất kỳ kết quả

Mã này là như sau:

<Window x:Class="ListViewTest.Test0.ListViewTest" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Empty ListView Grid" Height="216" Width="435" FlowDirection="LeftToRight" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.IsSharedSizeScope="False"> 
    <Window.Resources> 
     <XmlDataProvider x:Key="CustomersDS" Source="C:\data.xml"/> 
     <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"> 
      <Setter Property="Visibility" Value="Collapsed" /> 
     </Style> 
    </Window.Resources> 



    <ListView Margin="0,0,0,50" ItemTemplate="{DynamicResource CustomerTemplate}" ItemsSource="{Binding Source={StaticResource CustomersDS}, XPath=/Customers/Customer}"> 
     <ListView.View> 
      <!--ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}"--> 
      <GridView > 
       <GridViewColumn Width="80" TextBlock.TextAlignment="Center"> 
        <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock HorizontalAlignment="Center" Text="{Binding XPath=Code}"></TextBlock> 
        </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
       <GridViewColumn TextBlock.TextAlignment="Center" Width="80" DisplayMemberBinding="{Binding XPath=Name}"/> 
       <GridViewColumn Width="120" TextBlock.TextAlignment="center" DisplayMemberBinding="{Binding XPath=Country}"/> 
       <GridViewColumn Width="120" TextBlock.TextAlignment="center" DisplayMemberBinding="{Binding XPath=money}"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 


</Window> 

XML

 <Customers> 
    <Customer> 
<Code>1234</Code> 
<Name>EPI</Name> 
<Country>Sesame Street</Country> 
<money> 98.00</money> 
    </Customer> 
    <Customer> 
<Code>3234</Code> 
<Name>Paul</Name> 
<Country>United Kingdom</Country> 
<money> 8.70</money> 
    </Customer> 
<Customer> 
<Code>3344</Code> 
<Name>Juan</Name> 
<Country>Spain</Country> 
<money> 785.5</money> 
    </Customer> 
<Customer> 
<Code>4321</Code> 
<Name>Dodo</Name> 
<Country>Venezuela</Country> 
<money> 150.02</money> 
    </Customer> 
</Customers> 
+0

Tôi rất tiếc vì tôi không thể hiểu được. Ai khác? – Ray

+0

Tôi giải thích rõ hơn? Cảm ơn bạn đã giúp đỡ – Ozplc

+0

Tại sao câu hỏi này là một wiki cộng đồng? –

Trả lời

17

Sau đây là cách tôi đã làm một cái gì đó tương tự (định dạng và sắp xếp một cột tệ):

<GridViewColumn Header="Amount"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock TextAlignment="Right" 
         Text="{Binding Path=Amount, StringFormat='{}{0:C}'}" /> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

Tôi cũng đã thêm phong cách này:

<Style TargetType="ListViewItem"> 
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
</Style> 

Nếu bạn không sử dụng NET 3.5 SP1 , bạn sẽ cần phải sử dụng một công cụ chuyển đổi thay vì StringFormat.

+0

Bạn phải làm điều đó cho mỗi cột đơn? – Stylzs05

+0

@ Stylzs05 - vâng. WPF cho chiến thắng :( – JumpingJezza

2

Để có một StringFormat cho tiền tệ cho Ví dụ, bạn có thể sử dụng "StringFormat" được giới thiệu trên đối tượng liên kết trong .net3.5 sp1 Tôi nghĩ.

Text="{Binding XPath=Code, StringFormat=0.000}" 

Bên cạnh đó, tôi phải nói rằng tôi cũng không hiểu câu hỏi của bạn.

+0

Cảm ơn bạn rất nhiều vì câu trả lời của bạn, nhưng không thể làm cho nó hoạt động. – Ozplc

+0

Hmm thực sự. Không hoạt động ở đây. Có vẻ như XML bạn đang đọc đã là một chuỗi và hàm định dạng không có ở đó. Khả năng khác: bộ chuyển đổi giá trị: http://www.kirupa.com/blend_wpf/value_converters_pg1.htm –

Các vấn đề liên quan