【发布时间】:2016-03-06 08:08:25
【问题描述】:
也许是太晚了,我已经看屏幕太久了,但这真的让我很难过。我让数据网格显示数据,但在我加入 2 个表并尝试显示数据之后。数据在那里,因为我仍然可以让鼠标双击事件工作,但任何列或行中都没有显示文本。
这是 XAML。
<DataGrid Grid.Column="1" Grid.Row="1" Name="ProjectsSubGrid" ItemsSource="{Binding}"
AutoGenerateColumns="False" IsReadOnly="True"
MouseDoubleClick="ProjectsSubGrid_MouseDoubleClick"
Initialized="ProjectsSubGrid_Initialized">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ProjectName}" Header="Project Name"/>
<DataGridTextColumn Binding="{Binding Path=AllottedHours}" Header="Allotted Hours"/>
<DataGridTextColumn Binding="{Binding Path=InvoicedHours}" Header="Invoiced Hours"/>
<DataGridTextColumn Binding="{Binding Path=UninvoicedHours}" Header="Uninvoiced Hours"/>
<DataGridTextColumn Binding="{Binding Path=RemainingHours}" Header="Remaining Hours"/>
</DataGrid.Columns>
</DataGrid>
这是我设置 DataContext 的 C# 代码。
private void ProjectsSubGrid_Initialized(object sender, EventArgs e)
{
var list = from p in ProjectManagement.Context.Project
join a in ProjectManagement.Context.Account
on p.AccountId equals a.AccountId
select new ProjectView(){
AccountId = a.AccountId,
ProjectId = p.ProjectId,
ProjectName = p.ProjectName,
InvoicedHours = p.InvoicedHours,
AccountName = a.CompanyName,
AllottedHours = p.AllottedHours,
RemainingHours = p.RemainingHours,
UninvoicedHours = p.UninvoicedHours
};
ProjectsSubGrid.DataContext = list;
}
当我使用下面的代码时它可以工作,但一旦我切换到连接的表,它就会中断。
ProjectsSubGrid.DataContext = ProjectManagement.Context.Project.Where(p=>true);
任何帮助将不胜感激。
【问题讨论】:
-
不要使用Initilized事件,最好在Window的构造函数中做,然后检查。
标签: c# linq datagrid wpfdatagrid datacontext