簡體   English   中英

在MVVM中設計動態行標題,列標題和內容

[英]Design dynamic row header, column header and content in MVVM

我想有一個itemsource,它提供對MVVM模式中的列標題,行標題及其內容的綁定。 我已經嘗試過DataTable,但是,我不知道如何填充行標題。 是否可以在添加DataRow期間填充行標題?

DataRow dr = new DataRow();
dr.ItemArray = current.Split(new char[] { '\t' });
// add row header?

請幫忙。

這就是你想要的嗎?

XAML代碼:

<Grid>
    <DataGrid Name="SimpleDataGrid" AutoGenerateColumns="True" ItemsSource="{Binding}" />
</Grid>

創建新的數據行:

private void CreateNewDataRow()
{
    // Use the MakeTable function below to create a new table.
    DataTable table;
    table = MakeNamesTable();

    // Once a table has been created, use the  
    // NewRow to create a DataRow.
    DataRow row;
    row = table.NewRow();

    // Then add the new row to the collection.
    row["fName"] = "John";
    row["lName"] = "Smith";
    table.Rows.Add(row);

    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine(column.ColumnName);
    }

    SimpleDataGrid.DataContext = table;
}

創建新列:

private DataTable MakeNamesTable()
{
    // Create a new DataTable titled 'Names.'
    DataTable namesTable = new DataTable("Names");

    // Add three column objects to the table.
    DataColumn idColumn = new DataColumn();
    idColumn.DataType = System.Type.GetType("System.Int32");
    idColumn.ColumnName = "id";
    idColumn.AutoIncrement = true;
    namesTable.Columns.Add(idColumn);

    DataColumn fNameColumn = new DataColumn();
    fNameColumn.DataType = System.Type.GetType("System.String");
    fNameColumn.ColumnName = "Fname";
    fNameColumn.DefaultValue = "Fname";
    namesTable.Columns.Add(fNameColumn);

    DataColumn lNameColumn = new DataColumn();
    lNameColumn.DataType = System.Type.GetType("System.String");
    lNameColumn.ColumnName = "LName";
    namesTable.Columns.Add(lNameColumn);

    // Create an array for DataColumn objects.
    DataColumn[] keys = new DataColumn[1];
    keys[0] = idColumn;
    namesTable.PrimaryKey = keys;

    // Return the new DataTable. 
    return namesTable;
}

調用CreatingNewDataRow():

public MainWindow()
{
   InitializeComponent();

   CreateNewDataRow();
}

有關更多信息,請參見:

DataRow類MSDN

DataTable.NewRow方法MSDN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM