8,735
社区成员
发帖
与我相关
我的任务
分享
public IQueryable<Product> GetProducts()
{
//注意Include("Category")
return this.ObjectContext.Products.Include("Category");
}
//注意[Include]
[Include]
public Category Category { get; set; }
private NorthwindDomainContext _Context = new NorthwindDomainContext();
public EntitySet<Product> Products
{
get { return _Context.Products; }
}
public EntitySet<Category> Categories
{
get { return _Context.Categories; }
}
public MainPageViewModel()
{
//先Load Categories,再LoadCompleted回调里再Load Prodcuts.
if (!DesignerProperties.IsInDesignTool)
_Context.Load(_Context.GetCategoriesQuery(), lo=>_Context.Load(_Context.GetProductsQuery()), false);
}
<UserControl.DataContext>
<vm:MainPageViewModel />
</UserControl.DataContext>
<UserControl.Resources>
<CollectionViewSource x:Key="categoriesResource" Source="{Binding Categories}" />
</UserControl.Resources>
<sdk:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding Products}" Margin="12,12,0,0" Name="productDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="400">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Category" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Category.CategoryName,Mode=OneWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Source={StaticResource categoriesResource}}" DisplayMemberPath="CategoryName" SelectedValuePath="CategoryID" SelectedValue="{Binding CategoryID, Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn x:Name="productNameColumn" Binding="{Binding Path=ProductName}" Header="Product Name" Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="quantityPerUnitColumn" Binding="{Binding Path=QuantityPerUnit}" Header="Quantity Per Unit" Width="SizeToHeader" />
<sdk:DataGridTextColumn x:Name="unitPriceColumn" Binding="{Binding Path=UnitPrice}" Header="Unit Price" Width="SizeToHeader" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>