在WPF中将索引属性数据绑定到DataGrid(C#)

时间:2013-12-11 21:17:41

标签: wpf data-binding properties wpfdatagrid

我在WPF C#中有一个类,它有助于索引属性。我写了这样的课:

public class CSIndexedGridRow
{
    private int? [] _columns;

   public  CSIndexedGridRow(int numberOfColumns )
    {
        _columns = new int?[numberOfColumns];
        for (int i =0; i< _columns.Length; i++)
        {
            _columns[i] = null;
        }
    }

    public int RowNumber { get; internal set; }
    public int? this[int index]
    {
        get
        {
            if (index >= _columns.Length)
                throw new IndexOutOfRangeException();
            return _columns[index];
        }
        set{
            if (index >= _columns.Length)
                throw new IndexOutOfRangeException();
            if (value != _columns[index])
            {
                _columns[index] = value;
            }
        }
    }
}

如您所见,有一个行号属性,然后是索引属性。替代方案可能是:

public int RowNumber {get; set;}
public int? ColumnA {get; set;}
public int? ColumnB {get; set;}

// ... ad infinitum

这将是一个可怕的混乱。它(可怕的混乱)确实具有数据绑定工作的优势。我有这些类的列表: 公共列表USData

我将它数据绑定到数据网格,如下所示:

<Grid>
    <DataGrid ItemsSource="{Binding Path=USData, UpdateSourceTrigger=PropertyChanged}"   AutoGenerateColumns="True" ></DataGrid>


</Grid>

它与乱码方式一起工作正常,但与索引属性无关。你得到了所有的行,并显示了RowNumber,但是下一列只是一个像这样的大行-------------

发生了什么事?我如何数据绑定到已将索引属性作为其属性之一的对象列表?

谢谢, 戴夫

0 个答案:

没有答案