#c# #wpf #entity-framework #datagrid
#c# #wpf #entity-framework #сетка данных
Вопрос:
В winform я делаю это :
using (vbdadvertisementEntities context = new vbdadvertisementEntities())
{
var q = context.customers;
customerBindingSource.DataSource = q;
dataGridView.DataSource = customerBindingSource;
}
Затем я попробовал это в wpf, но сетка данных просто отображается пустой :
CollectionViewSource customerViewSource = (CollectionViewSource) FindResource("customerViewSource");
using (vbdadvertisementEntities context = new vbdadvertisementEntities())
{
var q = context.customers;
customerViewSource.Source = q;
}
XAML :
<Window x:Class="VBDAdvertisement.WCustomerMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WCustomerMain" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="379" Width="654" xmlns:my="clr-namespace:VBDAdvertisement" Loaded="Window_Loaded">
<Window.Resources>
<CollectionViewSource x:Key="customerViewSource"/>
</Window.Resources>
<Grid DataContext="{StaticResource customerViewSource}">
<Grid.RowDefinitions>
<RowDefinition Height="56*" />
<RowDefinition Height="284*" />
</Grid.RowDefinitions>
<DataGrid AutoGenerateColumns="False" Grid.Row="1" Name="MainDataGrid" DataContext="{Binding}" />
</Grid>
</Window>
Ответ №1:
Вы должны указать ItemsSource, указание DataContext просто предоставит контекст для привязок данных.
Нравится,
<DataGrid AutoGenerateColumns="False" Grid.Row="1" Name="MainDataGrid" ItemsSource="{Binding}" />
Комментарии:
1. а также, если вы не указали столбцы для своей сетки данных (в xaml или через codebehind), установите для AutoGenerateColumns значение true