PDA

View Full Version : سوال: اتصال datagrid به بانک اطلاعاتی(entity framwork) در wpf



ehsan1198
سه شنبه 11 مهر 1396, 08:34 صبح
سلام دوستان
من یک مشکل اساسی با دیتا گرید wpf دارم که وقنی میخوام به بانک اطلاعاتی بایند بشم اطلاعات رو دوبار نمایش میده، البته از طریق data context اطلاعات را فراخوانی میکنم و از entity framwork استفاده میکنم.
دوستان اگه راه حلی به ذهنشون میرسه لطفا راهنماییم کنید و اگه جور دیگری بایند میشید لطفا عملیات crud رو هم توضیح دهید.
با تشکر

کد XML

<DataGrid Margin="10,140,10,10" x:Name="dtgGroup" FrozenColumnCount="1" ItemsSource="{Binding}" > <DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id_group}" Width="100" Header="ID" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding name_group}" Width="100" Header="نام گروه"/>
</DataGrid.Columns>

کد C#‎‎

private static AhanOmdehEntities ahanomdeh = new AhanOmdehEntities();
public Anbargroup()
{
InitializeComponent();

DataContext = ahanomdeh.tbl_group_kalaSet.ToList();

}

javad.jaddi
سه شنبه 11 مهر 1396, 10:34 صبح
شما درون windowloaded کد زیر رو بنویسید


var data=(from t in db.table1 select t).tolist();
dtgGroup.DataSource=data;

درون کلاس همین ویندوز هم باید db رو تعریف کنید

database db=new database();
به جای table1 اسم جدولی که میخواید از اون اطلاعات رو بخونید انتخاب کنید

ehsan1198
سه شنبه 11 مهر 1396, 11:07 صبح
شما درون windowloaded کد زیر رو بنویسید


var data=(from t in db.table1 select t).tolist();
dtgGroup.DataSource=data;

درون کلاس همین ویندوز هم باید db رو تعریف کنید

database db=new database();
به جای table1 اسم جدولی که میخواید از اون اطلاعات رو بخونید انتخاب کنید

این راه حل شما امکان پذیر نیست چون من از Wpf و Entity framwork استفاده میکنم.

Mahmoud.Afrad
سه شنبه 11 مهر 1396, 12:44 عصر
دو سری سطر یا دو سری ستون تکراری؟

javad.jaddi
پنج شنبه 13 مهر 1396, 08:06 صبح
بنده دقیقا از wpf و
Entity framework دارم به همین روش استفاده میکنم و هیچ مشکلی ندارم

javad.jaddi
پنج شنبه 13 مهر 1396, 08:07 صبح
این راه حل شما امکان پذیر نیست چون من از Wpf و Entity framwork استفاده میکنم.

بنده دقیقا از wpf و Entity framework دارم به همین روش استفاده میکنم و هیچ مشکلی ندارم

ehsan1198
پنج شنبه 13 مهر 1396, 08:53 صبح
دو سری سطر یا دو سری ستون تکراری؟
ستون تکراری

ehsan1198
پنج شنبه 13 مهر 1396, 09:12 صبح
بنده دقیقا از wpf و Entity framework دارم به همین روش استفاده میکنم و هیچ مشکلی ندارم

دوست عزیز دیتا گرید در wpf پراپرتی DataSource ندارد

Mahmoud.Afrad
پنج شنبه 13 مهر 1396, 10:36 صبح
ستون تکراری

چون خودتون ستون ایجاد کردید پراپرتی autogeneratecolumns را false کنید
https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.autogeneratecolum ns.aspx

javad.jaddi
پنج شنبه 13 مهر 1396, 11:00 صبح
ببخشید اشتباه از من بود
از خاصیت ItemsSource استفاده کن




<DataGrid x:Name="grid1" HorizontalAlignment="Right" AutoGenerateColumns="False" CanUserSortColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserResizeRows="False" SelectionUnit="FullRow" FlowDirection="RightToLeft" Margin="0,0,16,264" Width="1250" Height="283" VerticalAlignment="Bottom">
<DataGrid.Columns>
<DataGridTextColumn Header="شماره" Binding="{Binding ID}" Width="-20">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="FontFamily" Value="B Yekan"/>
<Setter Property="FontSize" Value="1"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.HeaderStyle>
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="B Yekan"/>
<Setter Property="FontSize" Value="1"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

</DataGrid.Columns> </DataGrid>





var id=from d in db.VW_Item
where d.deleted!=0
select d;
var result = id.ToList(); grid1.ItemsSource = result;