私は次のコンストラクタを持つWPFウィンドウViewAssignedStudentsWindow
を持っている:C#WPFのDataGrid
public ViewAssignedStudentsWindow(IEnumerable<StudentDTO> allStudents, MandatoryLessonDTO lesson)
{
InitializeComponent();
studentsGrid.ItemsSource = allStudents;
studentsGrid.SelectedItems.Add(allStudents.Where(x => lesson.StudentIds.Contains(x.Id)));
}
StudentDTO
は、この問題のためには重要ではありませんプロパティFirstName
、LastName
、Id
といくつか他の人を、持っています。 MandatoryLessonDTO
クラスのStudentIds
プロパティは、学生のIDの一部を保持するIEnumerable<Guid>
です。 ViewAssignedStudentWindow
のXAMLは: - アイテムのどれが選択されていない
<DataGrid SelectionMode="Extended" IsReadOnly="true" HeadersVisibility="Column" ItemsSource="{Binding}" ColumnWidth="*" DockPanel.Dock="Top" Background="White" AutoGenerateColumns="false" x:Name="studentsGrid">
<DataGrid.Columns>
<DataGridTextColumn Header="First name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
問題は、グリッドがしかしSelectedItems
が動作するようには思えない、学生のデータで埋めてしまうことです。コードをデバッグしようとすると、LINQは正しい結果を返すように見えますが、SelectedItems
は空のままです。私はこの時点で完全に失われています。なぜこれが機能していないのか、それはそのような単純な作業のようです。どんな助けでも大歓迎です。