Datagrid не показывает данные в WPF
код XAML :
<Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="272*"/> <RowDefinition Height="71*"/> </Grid.RowDefinitions> <Button Content="Synchronize" Name="btnsync" Grid.Row="1" FontSize="40" FontFamily="Times New Roman" FontWeight="ExtraBold"/> <DataGrid Name="dgEmp" AutoGenerateColumns="False" ColumnWidth="*"> <DataGrid.Columns> <DataGridTextColumn Header="EmpNo" Binding="{Binding EmpNo}" ></DataGridTextColumn> <DataGridTextColumn Header="EmpName" Binding="{Binding EmpName}" ></DataGridTextColumn> <DataGridTextColumn Header="Salary" Binding="{Binding Salary}" ></DataGridTextColumn> <DataGridTextColumn Header="DeptName" Binding="{Binding DeptName}" ></DataGridTextColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
Файл MainWindow.язык XAML.VB кода
Система Импорта.Коллекции.Модель
Класс MainWindow
Служащий Государственного Класса
Public EmpNo Как Строка
Public EmpName В Виде Строки
Оплаты Труда Государственных Служащих Как Строку
Общественные DeptName Как Строку
End Класса
Дим empList как новые коллекции ObservableCollection(работника)
Private Sub btnsync_Click(отправитель как система.Объект, как система.Окна.RoutedEventArgs) обрабатывает btnsync.Щелчок
'empList.Добавить(Новый Сотрудник() С {.EmpNo = "2", .Столбец Empname = "Авинаш", .Зарплата = "5000", .DeptName = "Дев"})
-дгемп.Предметы.Освежить()
Конец Подводной Лодки
Private Sub Window_Loaded(отправитель как система.Объект, как система.Окна.RoutedEventArgs) Обрабатывает MyBase.Нагруженный
empList.Добавить(Новый Сотрудник() С {.EmpNo = "2", .Столбец Empname = "Авинаш", .Зарплата = "5000", .DeptName = "Дев"})
empList.Добавить(Новый Сотрудник() С {.EmpNo = "3", .Столбец Empname = "Авинаш", .Зарплата = "5000", .DeptName = "Дев"})
empList.Добавить(Новый Сотрудник() С {.EmpNo = "4", .Столбец Empname = "Авинаш", .Зарплата = "5000", .DeptName = "Дев"})
дгемп.ItemsSource = empList
Конец Подводной Лодки
Private Sub dgEmp_SelectionChanged(отправитель как система.Объект, как система.Окна.Управления.SelectionChangedEventArgs) обрабатывает dgEmp.SelectionChanged
Конец Подводной Лодки
End Класса
Что я уже пробовал:
Я проверил, что источник элементов имеет данные, но он не отображается на dataGrid.
Herman<T>.Instance
Я не вижу ItemsSource={привязки ...} в вашем XAML нет ни одной привязки SelectedItem={....}
Graeme_Grant
Это потому, что он не использует привязку данных XAML, он жестко кодирует в коде позади. Видеть:
dgEmp.ItemsSource = empList