我想让g <- new("gComparativa", data=dataValue)
包含文字和图像。
目前,我的代码看起来像这样
XAML:
DataGridCell
样式:
<DataGrid Name="myDataGrid" CellStyle="{StaticResource myCellStyle}" />
C#:
<Style x:Key="myCellStyle" TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}"/>
<Image/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
问题是:
如何使用myDataGrid.ItemsSource = myDataTable.DefaultView;
将文本绑定到TextBlock
?
答案 0 :(得分:2)
您必须做几件事来修复它
首先,将'AutoGenerateColumns'设置为true
<DataGrid CellStyle="{StaticResource myCellStyle}" AutoGenerateColumns="True">
下一个单元格样式
<Style x:Key="myCellStyle" TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=Content.Text}"/>
<Image/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
希望这会有所帮助。
答案 1 :(得分:0)
这假设myDataTable.DefaultView
是某些对象(类实例)的列表。
因此,当网格设置为ItemsSource
时,它将在每行 中显示列表中的一项。因此,要指定的绑定将是该类的一个或多个属性。
因此,从您的示例模板中,如果将其绑定到在类实例上带有FirstName
和LastName
的假设的人员类别列表,则可以将模板设置为绑定以将这些属性用于每行是这样的:
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text="{Binding LastName}"/>
<Image/>
</StackPanel>