Как получить все строки в datagridview? - PullRequest
0 голосов
/ 10 июня 2019

У меня есть сетка данных, связанная с классом DGItem, и я получаю значения сетки данных по запросу linq. Я хочу получить все эти значения

пытался получить его из DGItem, но только последнее полученное значение

CollegeContext cd = new CollegeContext();          
Teacher teaherCB = _TeachersComboBox.SelectedItem as Teacher;         

var query = (from sc in cd.SubjectTeachers
             join s in cd.Subjects on sc.IdSubject equals s.Id
             join t in cd.Teachers on sc.IdTeacher equals t.Id
             join wh in cd.WorkHours on t.IdWorkHours equals wh.Id
             join b in cd.Branches on sc.IdBranch equals b.Id
             where sc.IdTeacher== teaherCB.Id

             select new DGItem
             {
                 Name = t.Name,
                 Rank = wh.Rank,
                 HoursOfquerm = wh.HoursOfQuorum,
                 Namesub = s.Name,
                 Academic = s.Academic,
                 Virtual = s.Virtual, 
                 Exprement = s.Exprement,
                 TotalHour = s.TotalHours

             } ).ToList();

IstmaraB.ItemsSource = query;

public class DGItem            
    {            
        public String Name { get; set; }          
        public String Rank { get; set; }           
        public int? HoursOfquerm { get; set; }          
        public String Namesub { get; set; }          
        public int? Academic { get; set; }         
        public int? Virtual { get; set; }           
        public int? Exprement { get; set; }          
        public int? TotalHour { get; set; }        

    }  

и мой wpf:

 <Button Content="select all" HorizontalAlignment="Left" Margin="11,382,0,0" VerticalAlignment="Top" Width="94" Click="Button_Click"/>

 <DataGrid x:Name="IstmaraB" HorizontalAlignment="Left" AutoGenerateColumns="False" IsReadOnly="True"  Height="327" EnableRowVirtualization="True" ItemsSource="{Binding }" FlowDirection="RightToLeft" Margin="110,147,0,0" VerticalAlignment="Top" Width="652" RowDetailsVisibilityMode="VisibleWhenSelected">
        <DataGrid.Columns>
            <DataGridTextColumn   Binding="{Binding Name}"  Header="الاسم" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding Rank}"  Header="الدرجة" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding HoursOfquerm}"  Header="النصب القانوني" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding Namesub}"  Header="المواد التي يقوم بتدريسها" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding Academic}"  Header="نظري" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding Virtual}"  Header="عملي" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding Exprement}"  Header="تمارين" Width="auto"/>
            <DataGridTextColumn   Binding="{Binding TotalHour}"  Header="مجموع" Width="auto"/>
        </DataGrid.Columns>
    </DataGrid>

, и я попытался сделать это:

 private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        IstmaraB.SelectAll();
        if (IstmaraB.SelectedItems.Count > 0)
        {
            for (int i = 0; i < IstmaraB.SelectedItems.Count; i++)
            {
                System.Data.DataRowView selectedFile = (System.Data.DataRowView)IstmaraB.SelectedItems[i];
            }
        }

    }

1 Ответ

0 голосов
/ 11 июня 2019

Я уверен, что ваша ошибка в этой строке

System.Data.DataRowView selectedFile = (System.Data.DataRowView) IstmaraB.SelectedItems [i];

Пока я читаю, это просто собирается вернуть то, что случилось, случиться последним.Я также не уверен, что вы подразумеваете под «Get».Вы имеете в виду бросить в массив или список?Если это то, что вам нужно, вы можете просто заполнить массив значениями в сетке данных, используя приведенную выше строку, например так:

MyArray [i] = IstmaraB.SelectedItems [i];

Если это не то, что вам нужно, возможно, вам необходимо уточнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...