2016-03-29 11 views
1

を設定するにもかかわらず、並べ替えません。テンプレート列は、IsCheckedブール値にバインドされたチェックボックスに設定され、残りの列は、文字列に設定されたテキスト列です。テキスト列でSortMemberPathsとCanUserSortを設定しても、ヘッダーの列を並べ替えることはできません。何かご意見は?前もって感謝します。WPFのデータグリッドは、私がItemSourceとデータグリッドは、オブジェクトの配列に設定されているCanUserSortとSortMemberPath

ItemSourceオブジェクト

public class MyAllergy 
{ 
    public string Allergen { get; set; } 
    public string AllergenType { get; set; } 
    public string AllergyType { get; set; } 
    public string Reactions { get; set; } 
    public string TouchedWhen { get; set; } 
    public Boolean IsChecked { get; set; } 
    public Boolean IsEnabled { get; set; } 
    public string ApplicationSourceName { get; set; } 
    public string AllergyCategory { get; set; } 
    public string ConfidenceLevel { get; set; } 
    public PartialDate OnsetDate { get; set; } 
    public string Status { get; set; } 
    public string CreatedWhen { get; set; } 
    public string InformationSource { get; set; } 
    public string Text { get; set; } 
    public string ConfirmedBy { get; set; } 
    public long AllergyGUID { get; set; } 
} 

XAML

 <DataGrid AlternatingRowBackground="#FFCDDAEB" AutoGenerateColumns="False" Background="White" Height="160" HorizontalAlignment="Stretch" Margin="18,355,6,0" Name="dgUnityAllergies" VerticalAlignment="Top" Width="704" CanUserAddRows="false" FontSize="12"> 
      <DataGrid.Columns> 
       <DataGridTemplateColumn> 
        <DataGridTemplateColumn.HeaderTemplate> 
         <DataTemplate> 
          <CheckBox x:Name="all" Click="SelectAllCheckBox_Click" IsChecked="{Binding IsChecked}"/> 
         </DataTemplate> 
        </DataGridTemplateColumn.HeaderTemplate> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding IsEnabled}"/> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
       <DataGridTextColumn CanUserSort="True" Header="Category" Width ="Auto" Binding="{Binding AllergyCategory}" IsReadOnly="True" SortMemberPath="AllergyCategory"/> 
       <DataGridTextColumn CanUserSort="True" Header="Type" Width ="Auto" Binding="{Binding AllergenType}" IsReadOnly="True" SortMemberPath="AllergenType"/> 
       <DataGridTextColumn CanUserSort="True" Header="Allergen" Width ="Auto" Binding="{Binding Allergen}" IsReadOnly="True" SortMemberPath="Allergen"/> 
       <DataGridTextColumn CanUserSort="True" Header="Campus" Width ="Auto" Binding="{Binding ApplicationSourceName}" IsReadOnly="True" SortMemberPath="ApplicationSourceName"/> 
       <DataGridTextColumn CanUserSort="True" Header="Reactions" Width ="*" Binding="{Binding Reactions}" IsReadOnly="True" SortMemberPath="Reactions"/> 
       <DataGridTextColumn CanUserSort="True" Header="Entered On" Width ="Auto" Binding="{Binding TouchedWhen}" IsReadOnly="True" SortMemberPath="TouchedWhen"/> 
      </DataGrid.Columns> 
     </DataGrid> 
+1

あなたのitemssourceに関するより多くのコードを投稿できますか? –

+0

私は残念ながらSortMemberPathは動作しませんでし取り除く。オブジェクト・スキーマを追加したデータグリッドは、デフォルト – StepUp

+0

ことにより、このような機能を持っているとして、 'SortMemberPath =" AllergyCategory'となどを削除してみてください。DataGrid内あなた 'ItemsSource'財産である?それはコード - ある –

答えて

0

あなたがtrueに設定されている実際のデータグリッドにCanUserSortColumnsプロパティを持っていることを確認します。

+0

私はそれを設定しましたが、まだ動作しません。 –

関連する問題