DataGrid数据绑定与ADO.net实体数据模型
问题描述:
我有一个基于实体数据模型的应用程序使用SQL Server CE 3.5作为其数据存储。DataGrid数据绑定与ADO.net实体数据模型
在数据库中,我有一些客户其中每个有一些订单。这是一个简单的概述:
在我的WPF窗口,我插入了DataGrid
中,我想列出所有客户,用自己的名字和地址。事情是这样的:
所以我写了这个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
连接柱名称?
答
当您使用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>
谢谢您的回答!我尝试过,但仍然无法工作。没有错误,没有例外。我需要告诉XAML,在某些方面,_什么是使用环境_?我该怎么做? – Dev 2012-04-10 11:19:47
@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
谢谢!我创建了“customersList”属性('Private List')。我在'Window_Loaded'方法中评估了它。我确认'customersList'包含正确的值。然后,我将属性'ItemsSource =“{Binding customersList}”'添加到XAML中的'DataGrid'标签。我忘了什么? –
Dev
2012-04-10 12:44:26