如何使用字典向SL4中的DataGrid(xaml)提供数据(在运行时定义)
我正在寻找有关如何使用Dictionary向DataGrid提供数据的信息。我的用例是:我有一个WebService,它为我提供一个表,其中包含我在运行时知道的内容(和列名) 我目前对数据元组的实现是:如何使用字典向SL4中的DataGrid(xaml)提供数据(在运行时定义),xaml,datagrid,silverlight-4.0,runtime,Xaml,Datagrid,Silverlight 4.0,Runtime,我正在寻找有关如何使用Dictionary向DataGrid提供数据的信息。我的用例是:我有一个WebService,它为我提供一个表,其中包含我在运行时知道的内容(和列名) 我目前对数据元组的实现是: public class GridTuple : Dictionary<string, string> { public GridTuple(IDictionary<string, string> cv, int id) : base(cv)
public class GridTuple : Dictionary<string, string>
{
public GridTuple(IDictionary<string, string> cv, int id) : base(cv)
{
TupleId = id;
}
public int TupleId { set; get; }
public override string ToString()
{
string result = TupleId + " ";
for (int i = 0; i < ColumnNames.Names.Count; i++)
{
result += ColumnNames.Names[i] + " " + this[ColumnNames.Names[i]] + " ";
}
return result;
}
}
公共类GridTuple:字典
{
公共GridTuple(IDictionary cv,int id):基(cv)
{
TupleId=id;
}
公共int-TupleId{set;get;}
公共重写字符串ToString()
{
字符串结果=元组ID+“”;
对于(int i=0;i
…在xaml中,DataGrid的实现是:
<sdk:DataGrid AutoGenerateColumns="True" HeadersVisibility="All" x:Name="dataGrid"
HorizontalAlignment="Left" VerticalAlignment="Top"
ItemsSource="{Binding ListOfGridTuples}" MouseLeftButtonUp="dataGrid_MouseLeftButtonUp"
SelectionMode="Single" Grid.Column="1" >
<sdk:DataGrid.Columns>
<!-- ValueForColumn1 is a key in my GridTuple -->
<sdk:DataGridTextColumn Binding="{Binding [ValueForColumn1]}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
…已解决。我找到了这个帖子-。我在这篇文章之后创建了带有绑定的列。我所做的唯一更改是将Bindings中的列ID放在“[']”中,因为SL4支持xaml中的字典:newDataGridTextColumn{Header=“ID”,Binding=new Binding(“[ID]”)}) 解决了。我找到了这个帖子-。我在这篇文章之后创建了带有绑定的列。我所做的唯一更改是将bindings中的列ID放在“[']”中,因为SL4提供了对xaml中字典绑定的支持:newDataGridTextColumn{Header=“ID”,Binding=new Binding(“[ID]”)});