如何停止WPF DataGrid表单自动显示绑定到数据网格的元素。
我有这个视图模型,我不希望它显示元素“历史”。 我尝试过[Display(AutoGenerateField = false)],但它不起作用。
我在这里的方式将显示Lead,Calls,LastCall,然后再显示所有元素。
<DataGrid ItemsSource="{Binding Leads}" Margin="0" FontSize="20">
<DataGrid.Columns>
<DataGridTextColumn Header="Lead" Binding="{Binding Lead}" Width="150" />
<DataGridTextColumn Header="Calls" Binding="{Binding Calls}" Width="150" />
<DataGridTextColumn Header="LastCall" Binding="{Binding LastCall}" Width="*" />
</DataGrid.Columns>
查看模型
public class LeadViewModel : ViewModel
{
[Display(AutoGenerateField = false)]
public int Lead { get; set; }
[Display(AutoGenerateField = false)]
public int Calls
{
get
{
return History.Count();
}
}
[Display(AutoGenerateField = false)]
public int EndCalls
{
get
{
return (from h in History
where h.DailTime.End != null
select h).Count();
}
}
[Display(AutoGenerateField = false)]
public int Jobs
{
get
{
return (from h in History
where h.DailTime.End != null
select h.ProjectJob).Distinct().Count();
}
}
[Display(AutoGenerateField = false)]
public DateTime? LastCall
{
get
{
return (from h in History
orderby h.DailTime.Start descending
select h.DailTime.Start).FirstOrDefault();
}
}
[Display(AutoGenerateField = false)]
public IQueryable<DailHistory> History { get; set; }
}
答案 0 :(得分:0)
Bij将AutoGenerateColumns属性设置为false:
<DataGrid AutoGenerateColumns="False">
</DataGrid>
默认为true,因此将itemssource的所有列添加到datagrid。