0

昔ながらの方法でプログラムでDataGridに行を追加したいと思います。いくつかのDataGridと一緒にスローしたい非常に簡単なフォームがあり、それらに行を追加しようとしています。コードの行数を低く抑えたいので、この1つの状況でMVVMバインディングパターンを使用したくありません。

私はこれを試しましたが、うまくいきません:

private static void FillGrid(DataGrid grid, IEnumerable<decimal> values)
{
    foreach (var item in values)
    {
        grid.Items.Add(item);
    }
}

データグリッドは、データが含まれていない非常に小さな行になります。この画像のように見えます。また、値をクラスでラップし、そのクラスのオブジェクトをDataGridに追加しようとしましたが、同じ結果が得られました。そのコードは次のとおりです。

private class MyClass { public decimal MyDecimal { get; set; } }
private static void FillGrid(DataGrid grid, IEnumerable<decimal> values)
{
    foreach (var item in values)
    {
        grid.Items.Add(new MyClass() { MyDecimal = item });
    }
}

私はWindowsフォームの経験が豊富です。MVVMバインディングは面倒で、非常に複雑で、デバッグが難しいと思います。このコードを機能させるにはどうすればよいですか?

4

1 に答える 1

0

コードは機能していますがDataGrid、データをどう処理するかを指示する必要があります。

<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding}" />
    </DataGrid.Columns>
</DataGrid>

残念ながら、私は拘束力のない短い方法を見つけられませんでした。

于 2012-05-04T22:49:36.593 に答える