Как я могу привязать данные к DataGridView с EntityFramework в WPF - PullRequest
0 голосов
/ 10 декабря 2018

Я использовал хранимую процедуру Store в моей базе данных (SQL Server)

select namebuffet,namefamilymember,idmember,Sum(finalpricefactorbuffet)-Sum((delivery*30)/100) as Price from Buffet_factorbuffet
 Inner join Buffet_buffet
 on idbuffet=buffetidfactor
 Inner join Member_member
 on idmember=memberid
 inner join Buffet_banktransaction
 on factorid=idfactorbuffet
 where success=1 And checkout!=2 And datecheckouted is null
 GROUP BY namebuffet,namefamilymember,idmember

Затем я импортировал это в свой проект WPF с помощью платформы управления данными и также написал свой класс следующим образом

    public class Buffetinformation
        public List<Windows_BuffetInformation_Result> Getbuffetinformation ()
{
            using (MYDBEntities DB = new MYDBEntities())

                    var q = DB.Windows_BuffetInformation().AsQueryable();
                    return q.ToList();
}

как я могу связать некоторые части с контроллером datagridview, используя вышеуказанный класс, моя хранимая процедура возвращает некоторые столбцы, такие как (namebuffet, nameandfamilly, idmember и ....), но я хочу использовать только namebuffet и idmember и показать их в моем datagridview илидругие контроллеры

Я видел несколько примеров использования ado.net, но я не могу найти примеры структуры сущностей

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Чтобы привязать данные к DataGrid, вы просто привязываете свой результирующий список к свойству DataGrid ItemsSource.Отображение только некоторых частей в основном касается настройки сетки данных в XAML.Во-первых, в определении вашей DataGrid вы должны установить AutoGenerateColumns в False.Затем вы должны определить DataGrid.Columns и сделать явное определение для каждого столбца.Как то так:

<DataGrid Name=MyDataGrid AutoGenerateColumns=False>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Id" Binding="{Binding idmember}"/>
        <DataGridTextColumn Header="Name" Binding="{Binding namebuffet}"/>
    </DataGrid.Columns>
</DataGrid>
0 голосов
/ 10 декабря 2018

Вы могли бы связываться напрямую с объектами вашей модели.Привязать источник элементов сетки данных к общедоступному свойству Observablecollection в модели представления, которая реализует inotifypropertychanged.

Наблюдаемая коллекция может принимать List в своем конструкторе.У вас есть список из вашего ToList ().Таким образом, вы можете использовать это, чтобы установить для вашего свойства новую наблюдаемую коллекцию из того списка, который вы генерируете.

Это будет очень простой подход, потому что вам некуда поместить логику.Более обычным было бы повторять экземпляры модели и создавать новую модель представления строки, копировать свойства.Я обычно использую отражение, чтобы скопировать соответствующие свойства.

Но если вы просто хотите «начать».

https://social.technet.microsoft.com/wiki/contents/articles/28209.wpf-entity-framework-mvvm-walk-through-1.aspx?Redirected=true

...