我需要为DataGrid(Silverlight 4)的列标题添加工具提示。我将动态生成列数和列标题文本。
DataGrid
GridColumnCreation(....) { IEnumerable allHeaderText = /* Linq query */; }
如何使用此集合设置工具提示?
dhxwm5r41#
这可以比@Farukh的回答更简单地做到:
<data:DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="ToolTipService.ToolTipProperty" Value="Your tool tip here" /> </Style> </data:DataGridTextColumn.HeaderStyle>
或者,如果你需要在代码中这样做:
var style = new Style(typeof(DataGridColumnHeader)); style.Setters.Add(new Setter(ToolTipService.ToolTipProperty, "Your tool tip here")); column.HeaderStyle = style;
up9lanfz2#
或许能帮上什么忙。使用 ToolTip 属性时有效。
<DataGridTextColumn.HeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="ToolTip" Value="{Binding}"/> </Style> </DataGridTextColumn.HeaderStyle>
busg9geu3#
如果不想为标题创建新样式,只需为列标题添加TextBlock并在其上设置工具提示。
<DataGridTextColumn> <DataGridTextColumn.Header> <TextBlock Text="ColumnA" ToolTip="ColumnA Tooltip"/> </DataGridTextColumn.Header> </DataGridTextColumn>
qv7cva1a4#
这可以通过使用DataGridTextColumn & DataGridTextColumn.HeaderStyle来完成。在headerstyle标记中,使用ToolTipService并将内容绑定到生成的动态值。下面是一个示例代码。
<data:DataGrid.Columns> <data:DataGridTextColumn Header="First Name" Binding="{Binding FName}" > <data:DataGridTextColumn.HeaderStyle> <Style TargetType="dataprimitives:DataGridColumnHeader"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <ContentControl Content="{Binding}"> <ToolTipService.ToolTip> <ToolTip Content="Tooltip First" /> </ToolTipService.ToolTip> </ContentControl> </DataTemplate> </Setter.Value> </Setter> </Style> </data:DataGridTextColumn.HeaderStyle> </data:DataGridTextColumn> <data:DataGridTextColumn Header="Last Name" Binding="{Binding LName}"> <data:DataGridTextColumn.HeaderStyle> <Style TargetType="dataprimitives:DataGridColumnHeader"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <ContentControl Content="{Binding}"> <ToolTipService.ToolTip> <ToolTip Content="Tooltip Second"></ToolTip> </ToolTipService.ToolTip> </ContentControl> </DataTemplate> </Setter.Value> </Setter> </Style> </data:DataGridTextColumn.HeaderStyle> </data:DataGridTextColumn> <data:DataGridTextColumn Header="City" Binding="{Binding City}"> <data:DataGridTextColumn.HeaderStyle> <Style TargetType="dataprimitives:DataGridColumnHeader"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <ContentControl Content="{Binding}"> <ToolTipService.ToolTip> <ToolTip Content="Tooltip Third"></ToolTip> </ToolTipService.ToolTip> </ContentControl> </DataTemplate> </Setter.Value> </Setter> </Style> </data:DataGridTextColumn.HeaderStyle> </data:DataGridTextColumn> </data:DataGrid.Columns> </data:DataGrid> </Grid>
客户详细信息是这样的
class Customer { public string LName { set; get; } public string FName { set; get; } public string City { set; get; } }
数据绑定...
List<Customer> customers = new List<Customer> { new Customer { LName="Alan", FName="Ameen", City="New York" }, new Customer { LName="Forgeard", FName="Steven", City="Mumbai" }, new Customer { LName="Angur", FName="Paul", City="São Paulo" } }; dgCustDetails.ItemsSource = customers;
这将显示标题工具提示...使其充满活力。将工具提示内容替换为绑定&所需的值...
4条答案
按热度按时间dhxwm5r41#
这可以比@Farukh的回答更简单地做到:
或者,如果你需要在代码中这样做:
up9lanfz2#
或许能帮上什么忙。使用 ToolTip 属性时有效。
busg9geu3#
如果不想为标题创建新样式,只需为列标题添加TextBlock并在其上设置工具提示。
qv7cva1a4#
这可以通过使用DataGridTextColumn & DataGridTextColumn.HeaderStyle来完成。在headerstyle标记中,使用ToolTipService并将内容绑定到生成的动态值。下面是一个示例代码。
客户详细信息是这样的
数据绑定...
这将显示标题工具提示...使其充满活力。将工具提示内容替换为绑定&所需的值...