Создание всплывающей подсказки столбца DataGrid полностью в коде позади - PullRequest
2 голосов
/ 30 марта 2012

Я пытаюсь создать подсказку для сетки данных полностью в коде файла. Код XAML всплывающей подсказки выглядит следующим образом:

<data:DataGrid>
<data:DataGrid.Columns>
    <data:DataGridTextColumn Header="My Header">
        <data:DataGridTextColumn.HeaderStyle>
            <Style TargetType="dataprimitives:DataGridColumnHeader">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <ContentControl Content="{Binding}">
                                <ToolTipService.ToolTip>
                                    <ToolTip Content="My Tooltip"></ToolTip>
                                </ToolTipService.ToolTip>
                            </ContentControl>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </data:DataGridTextColumn.HeaderStyle>
    </data:DataGridTextColumn>
</data:DataGrid.Columns>

Я застрял на <Setter Property="ContentTemplate">. Мой текущий код:

                Style style = new Style();
                style.TargetType = typeof(DataGridColumnHeader);
                Setter setter = new Setter();
                setter.Property = DependencyProperty.Register("ContentTemplate", typeof(DataTemplate), typeof(FrameworkElement), null);

Любой может показать мне пример реализации этой части в коде:

<Setter Property="ContentTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <ContentControl Content="{Binding}">
                                    <ToolTipService.ToolTip>
                                        <ToolTip Content="My Tooltip"></ToolTip>
                                    </ToolTipService.ToolTip>
                                </ContentControl>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>

Спасибо!

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Как только вы получили дескриптор для столбца, к которому вы хотите добавить всплывающую подсказку, попробуйте следующее.

var style = new Style(typeof(DataGridColumnHeader));
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty, "Customer Name"));

Теперь, когда вы определили значение всплывающей подсказки, вы можете установить свойство HeaderStyle:столбец примерно такой ...

dgCustDetails.Columns[0].HeaderStyle = style;

, где dgCustDetails - имя сетки данных.

1 голос
/ 11 июля 2016
Style stylecell = new Style(typeof(DataGridCell));

Binding descriptionbinding = new Binding("SRNO") { StringFormat = "{0}" };

stylecell.Setters.Add(newSetter(ToolTipService.ToolTipProperty,descriptionbinding));

gridItem.Columns[0].CellStyle = stylecell;
...