C#

2009-08-18 6 views
26

kullanarak WPF içinde bir DataGrid Sütun Üstbilgisi Sortable oluşturma Visual Studio 2008'de C# kullanıyorum ve WPF Toolkit'i yükledim. Testtest.xaml'de bir DataGrid oluşturdum. Kimlik ve Parçalar $ sütunları, DataGrid öğelerini kendi özel sütun başlıklarını tıklayarak sıralama becerisine sahiptir. Ancak, sütun başlığı Complete Date'in bu yeteneği yoktur. Bu sütunun tarihlerini biçimlendirmek için "DataGridTemplateColumn" etiketini kullandım. Sütun başlığı Tamamlanma Tarihi'ni nasıl programlıyorsunuz, böylece Tam Tarih sütun başlığını tıklatabilir ve bu sütunu sıralayabilirsiniz. Sütuna tıklarsanız, ok sadece görüntülenmez, ancak sütun başlığı "tıklanabilir" değildir. sizeC#

<Label Height="22" HorizontalAlignment="Left" Margin="10,45,0,0" Name="label1" VerticalAlignment="Top" Width="41">Task</Label> 
    <my:DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" Margin="140,83,67,28" Name="dataGrid1" GridLinesVisibility="Vertical" IsReadOnly="True"> 
     <my:DataGrid.Columns> 
      <my:DataGridTextColumn Binding="{Binding Path=[ID]}" Header="ID" /> 
      <my:DataGridTextColumn Binding="{Binding Path=p}" Header="Parts $" /> 
      <my:DataGridTemplateColumn SortMemberPath="" Header="Complete Date"> 
       <my:DataGridTemplateColumn.CellTemplate > 
        <DataTemplate> 
         <TextBlock> 
          <TextBlock.Text> 
           <Binding Path="CompleteDate" ConverterCulture="en-GB" StringFormat="{}{0:MM/dd/yyyy}"/> 
          </TextBlock.Text> 
         </TextBlock> 
        </DataTemplate> 
       </my:DataGridTemplateColumn.CellTemplate> 
      </my:DataGridTemplateColumn> 
     </my:DataGrid.Columns> 
    </my:DataGrid> 
</Grid> 

cevap

53

ederiz senin DataGridTemplateColumn Eğer SortMemberPath "" olarak ayarlanmış olması. Bunu öğenin gerçek bir özelliğine ayarlarsanız (örneğin, CompleteDate), sıralama yapabilmeniz gerekir. Seçilen sütunlarda CanUserSort="true" veya CanUserSort="false"'u da ayarlayabilirsiniz.

SortMemberPath, kullanıcı bir sıralama girişiminde bulunduğunda özelliği sırayla verir. Bu ayarlanmadıysa, kılavuz o sütunu nasıl sıralayacağını bilmez ( sütununda metni kullanmaz)

  <my:DataGridTemplateColumn SortMemberPath="CompleteDate" Header="Complete Date" CanUserSort="true"> 
      <my:DataGridTemplateColumn.CellTemplate > 
        <DataTemplate> 
         <TextBlock> 
          <TextBlock.Text> 
           <Binding Path="CompleteDate" ConverterCulture="en-GB" StringFormat="{}{0:MM/dd/yyyy}"/> 
          </TextBlock.Text> 
         </TextBlock> 
        </DataTemplate> 
       </my:DataGridTemplateColumn.CellTemplate> 
      </my:DataGridTemplateColumn>