マルチバインディング値に基づいて DataGridTextColumn を並べ替えたい - テキスト列は日付と時刻の両方にバインドされるため、並べ替え操作はDateTimeに基づいて実行する必要があります。
XMAL ソースコードは
<DataGridTextColumn Header="Visit Date" CanUserSort="True" >
<DataGridTextColumn.SortMemberPath>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="VisitDate"/>
<Binding Path="VisitTime" />
</MultiBinding>
</DataGridTextColumn.SortMemberPath>
<DataGridTextColumn.Binding>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="VisitDate"/>
<Binding Path="VisitTime" />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
ビューおよびビュー モデルの C# ソース コードは次のとおりです。
public class Employee
{
public string empName { get; set; }
public string VisitDate { get; set; }
public string VisitTime { get; set; }
}
public class EmployeeInfo
{
public ObservableCollection<Employee> EmployeeList { get; set; }
public EmployeeInfo()
{
EmployeeList = new ObservableCollection<Employee>();
EmployeeList.Add(new Employee { empName = "John", VisitDate = "11/28/2015", VisitTime = "05:12 PM" });
EmployeeList.Add(new Employee { empName = "Potter", VisitDate = "10/28/2015", VisitTime = "04:33 PM" });
EmployeeList.Add(new Employee { empName = "James", VisitDate = "11/27/2015", VisitTime = "09:12 AM" });
}
}