0

我有一个简单的 DataGrid,看起来像这样

<DataGrid ItemsSource="{Binding GridList}">
   <DataGrid.RowStyle>
      <Style TargetType="{x:Type DataGridRow}">
         <Setter Property="Height" Value="Auto" />
         <Setter Property="Background" Value="Black" />
      </Style>
   </DataGrid.RowStyle>
   <DataGrid.Columns>
      <DataGridTemplateColumn>
         <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
               <Grid>
                  <Grid.ColumnDefinitions>
                     <ColumnDefinition />
                  </Grid.ColumnDefinitions>
                  <TextBlock Grid.Column="0" Text="{Binding ID}" />
               </Grid>
            </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
      </DataGridTemplateColumn>
   </DataGrid.Columns>
</DataGrid>

但现在我想添加另一个看起来像这样TextBlockDataTemplate

<TextBlock Grid.Column="1" Text="{Binding Values["Entity1"]}" />

或者

<TextBlock Grid.Column="1" Text="{Binding Values.Entity1}" />

但我无法让它工作,实际上我不知道如何创建最后一个所以它会工作

List 的模型如下所示

class ListModel {
   public int ID {get;set;}
   public IDictionary<string, string> Values {get;set;}
}

当然,我可以将 IDictionary 替换为其他内容,但是什么?

4

1 回答 1

0

实际上我想通了,我将 ListModel 更改为

class ListModel {
   public string this[string key] { get{return _values[key];} set{_values[key]=value;}}
   public int ID{get;set;}
   public IDictionary<string,string> _values = new Dictionary<string,string>();
}

和 XAML

<TextBlock Grid.Column="1" Text="{Binding [Entity1]}" />
于 2013-07-14T21:49:21.983 回答