3
この例では、コンピュータが自動列を生成しますが、他のマシンでは ソースがQueryableまたはEnumrableの場合、この例では、itemssourceがQueryableまたはEnumrableである場合、Datagridは列を生成しません
異なる
public MainWindow()
{
InitializeComponent();
dg.DataContext = GetPaople();
}
public object GetPaople()
{
List<Person> list = new List<Person>();
for (int i = 0; i < 15; i++)
{
list.Add(new Person() { FirstName = "F" + i, LastName = "L" + i, Id = i });
}
var res = from p in list select p;
return res.AsQueryable();//not Genrating Columns
return list;//Genrating Columns
}
列は、Personのプロパティに基づいて生成されます。 .AsQueryableメソッドは、IEnumarbleにします。IEnumarbleは、アクセスされていなければ結果を返しません。私は、DataGridが列挙をトリガーしないと思います。列を自動生成する唯一の方法は、コレクションを返すことです。 – Silvermind
解決しようとしている機能的な問題は何ですか?リストは何を提供していないのですか? –
Paparazzi
@ Silvermindと@Blamに同意すると、LINQクエリは.Count()、.ToList()、.ToArray()などの拡張を使用して**アクセス**する必要があります。なぜあなたは 'List'をそのまま使うのですか?データグリッドのitemssourceを 'IQueryable'にして、式を使って素早くソート、フィルタリング、グループ化をしたいのですか? Thatsは良い提案ですが、悲しいことに、組み込みのWPFデータグリッドのためにMicrosoftによって実装されていません。私は興味深い議論のためにあなたの質問をupvotingです。 –