代码之家  ›  专栏  ›  技术社区  ›  Skarab

如何使用字典向SL4中的DataGrid(XAML)提供数据(在运行时定义)

  •  0
  • Skarab  · 技术社区  · 14 年前

    我正在寻找有关如何使用字典向数据报提供数据的信息。我的用例是:我有WebService,它为我提供一个表,其中包含我在运行时了解的内容(和列名)。

    我当前对数据元组的实现是:

     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;
    
        }
    }
    

    …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>