2012-04-10 116 views
1

我有一个基于实体数据模型的应用程序使用SQL Server CE 3.5作为其数据存储。DataGrid数据绑定与ADO.net实体数据模型

在数据库中,我有一些客户其中每个有一些订单。这是一个简单的概述:

enter image description here

在我的WPF窗口,我插入了DataGrid中,我想列出所有客户,用自己的名字和地址。事情是这样的:

enter image description here

所以我写了这个XAML:

<DataGrid Grid.Row="0" Name="customersDataGrid" AutoGenerateColumns="False" CanUserResizeColumns="True" AllowDrop="True" Drop="Window_Drop" DragEnter="Window_DragEnter"> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Name" Width="Auto" IsReadOnly="True" /> 
     <DataGridTemplateColumn Header="Address" Width="Auto" IsReadOnly="True" /> 
    </DataGrid.Columns> 
</DataGrid> 

但现在,我怎么能在我的数据模型的客户的财产Name连接柱名称

回答

2

当您使用DataGridTemplateColumn,你可以把DataTemplate中有..(注意:您可能不需要“数据:”前缀)

<data:DataGridTemplateColumn Header="Name"> 
     <data:DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Name}"> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellTemplate> 
     <data:DataGridTemplateColumn.CellEditingTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding Name}"> 
      </DataTemplate> 
     </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn> 
+0

谢谢您的回答!我尝试过,但仍然无法工作。没有错误,没有例外。我需要告诉XAML,在某些方面,_什么是使用环境_?我该怎么做? – Dev 2012-04-10 11:19:47

+1

@Dev它不工作的原因是因为你的datagridview实际上并没有绑定到数据源。你需要查询数据库,并将结果放入'List '中。将此列表作为属性隐藏在代码后面,并使用xaml中datagrid中的代码'DataGrid.ItemsSource = {Binding ListOfCustomers}'绑定到该列表。您最好使用一个名为MVVM的框架与您的WPF应用程序。如果你使用这个框架,你的代码将会很棒。 http://msdn.microsoft.com/en-us/magazine/dd419663.aspx – 2012-04-10 12:10:01

+0

谢谢!我创建了“customersList”属性('Private List ')。我在'Window_Loaded'方法中评估了它。我确认'customersList'包含正确的值。然后,我将属性'ItemsSource =“{Binding customersList}”'添加到XAML中的'DataGrid'标签。我忘了什么? – Dev 2012-04-10 12:44:26

相关问题