を設定するにもかかわらず、並べ替えません。テンプレート列は、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>
あなたのitemssourceに関するより多くのコードを投稿できますか? –
私は残念ながらSortMemberPathは動作しませんでし取り除く。オブジェクト・スキーマを追加したデータグリッドは、デフォルト – StepUp
ことにより、このような機能を持っているとして、 'SortMemberPath =" AllergyCategory'となどを削除してみてください。DataGrid内あなた 'ItemsSource'財産である?それはコード - ある –