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>

しかし今、私はこのように見える別TextBlockのものを追加したいDataTemplate

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

または

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

しかし、私はそれを機能させることができません。実際には、最後のものを作成する方法がわからないので、機能します

リストのモデルは次のようになります

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 に答える