0

我希望有人可以帮助我或发布相关问题的链接,这将有答案。我已经阅读了其中的大部分内容,这就是我走到这一步的原因......

所以我有一个包含 3 列的数据网格,其中两个绑定到一个数据表,第三个是组合框列应该绑定到另一个。

我将组合框列绑定到静态资源。

我不了解如何将数据表转换为我想用作组合框列的静态资源的键值对列表。

public class MyClasificators:List<KeyValuePair<object, object>>
{

    public MyClasificators()
    {

        this.Add(new KeyValuePair<object, object>(1, "Test"));
        this.Add(new KeyValuePair<object,object>(2, "Test1"));
        this.Add(new KeyValuePair<object, object>(3, "Test2"));

    }
}

XAML:

<local:MyClasificators x:Key="clList"></local:MyClasificators>

组合框列:

<dg:DataGridTemplateColumn Header="test">
    <dg:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
        <ComboBox ItemsSource="{StaticResource clList}" DisplayMemberPath="Value" / >
         </DataTemplate>
      </dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>

现在这工作正常,但我如何将此表传递给 MyClassificators 类以及如何将其转换为 list> :

DataTable country = new DataTable();
            country.Columns.Add(new DataColumn("id_country", typeof(int)));
            country.Columns.Add(new DataColumn("name", typeof(string)));
            DS.Tables.Add(country);
4

1 回答 1

0

假设“国家”是您填写的表格,第 0 列是“id_country”,第 1 列是“名称”:

public MyClasificators()
{
    //Acquire "country" DataTable before this point

    foreach (DataRow row in country.Rows)
    {
        this.Add(new KeyValuePair<object, object>(row.ItemArray[0], row.ItemArray[1]));
    }
}

这将遍历 DataTable 中的所有行并获取每行的前两项并将它们分别添加到列表中;)

于 2013-05-18T09:33:01.380 回答