私はAPIからクエリされたデータを表示する自動生成されたDatagridを持っています。結果は配列形式で取り込まれ、DataTableに入れられます。これらはDataTreeに表示されます。配列の長さは必ずしも同じではなく、列は「均等」ではありません。 |--DTColumn1---DTColumn2-----| |---Data1----|---Data1-------| |---Data2----|---Data3-------| |---Data3----|---Data5-------| |---Data4----|---emptycell---| |---Data5----|---emptycell---|
WPFデータグリッドが不均一なデータでいっぱいになる
"DTColumn"は類似のデータを含む配列ですが、欠損している可能性がありエラーではありません。実行時に取得するデータはわかりませんが、同様のデータが含まれていることがわかります。
どれでも、それはこのように見えるようにするアドバイス: |--DTColumn1---DTColumn2-----| |---Data1----|---Data1-------| |---Data2----|---emptycell---| |---Data3----|---Data3-------| |---Data4----|---emptycell---| |---Data5----|---Data5-------|
EDIT:
コード構造:
private void buttonget_Click(object sender, RoutedEventArgs e)
{
sngrid.ItemsSource = null;
string dtnumber = DTBox.Text;
if (dtnumber == "")
{
MessageBox.Show("NO DATA!");
}
else
{
string[] dtresvalues;// this is were the DTColumn's come from and the number a of loop's for the second apicall
int s = apicall.Check..; //<- check if input can be handled and get dtresvalues
if (s != 5)
{
//API error handling here
}
else
{
var list = dtresvalues.Where((value, index) => index % 2 == 0).ToArray();// get rid of excess/usles data
string[] predt = list.ToArray();// prepared data, actual DTColumn's in array
DataTable table = new DataTable();
for (int i = 0; i < predt.Length; i++)//loop untill DTColumn run out
{
string kerdt = predt[i];// set current DTColumn for API
int si = apicall.Get...;// if no error, it returns the resoultvalues array (data1, data2,...)
if (si != 0)
{
//API error handling here
}
else
{
table.Columns.Add(kerdt);//set column name in table
if (i == 0)//this loop down, add's resoultvalues of API to current column of table(data1,data2, ..)
{
foreach (string sd in resoultvalues)
{
table.Rows.Add(sd);
}
}
else
{
while (table.Rows.Count < resoultvalues.Length)
{
table.Rows.Add();
}
for (int j = 0; j < resoultvalues.Length; j++)
{
table.Rows[j].SetField(i, resoultvalues[j]);
}
}
}
}
// add finished table to datagrid
sngrid.ItemsSource = table.DefaultView;
}
はまたresoultvalues配列です。
偶数とはどういう意味ですか?文字列が中央に配置されているか、右の列の値が交互に並べられているセルの幅ですか? –
でも私はスタイルの書式設定を意味するものではありません。私は、データ1がある場合は、次の列data1は、2番目の列にemptycellのdata2とdata2がない場合は隣にする必要がありますが、3番目の列に再びそれがある場合は、その行にする必要がありますデータを持たない可能性1。 – Tory
もしそれがあまりにも多くの時間を要しなければ、配列からソースを取り出した後に配列を並べ替えるのはなぜですか?または、あなたは 'KeyValuePairのようなKeyValuesPairを使って新しいllist/arrayに配置することができます –