我有一个简单的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}" />
但是我无法让它工作,实际上我不知道如何创建最后一个所以它会起作用
List的模型看起来像这样
class ListModel {
public int ID {get;set;}
public IDictionary<string, string> Values {get;set;}
}
当然我可以将IDictionary替换为其他东西但是什么?
答案 0 :(得分: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]}" />