工具提示样式.可以';t绑定到数据上下文

本文关键字:绑定 数据 上下文 样式 可以 工具提示 | 更新日期: 2023-09-27 18:27:32

我有一个工具提示问题。我想将模板化的工具提示添加到按钮中,其中包含一些信息。

这里是带有工具提示的按钮,数据上下文绑定到某个视图模型:

<fluent:Button DataContext="{Binding NewConnections, Source={StaticResource Locator}}" Command="{Binding AddCloudStorageAccount}" Header="Add Account">
                        <fluent:Button.LargeIcon>
                            <Image Source="pack://application:,,,/Icons;component/UI/v1/add_account.png" Width="48"/>
                        </fluent:Button.LargeIcon>
                        <fluent:Button.ToolTip>
                            <ToolTip DataContext="{Binding UserInput.AddAccountsButtonInfo, Source={StaticResource Locator}}" Style="{StaticResource ButtonTooltip}"></ToolTip>
                        </fluent:Button.ToolTip>
                    </fluent:Button>

样式:

 <Style TargetType="ToolTip" x:Key="ButtonTooltip">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <Border  Background="LightYellow" BorderThickness="0.5" BorderBrush="Maroon">
                    <StackPanel Orientation="Vertical" Margin="3">
                        <TextBlock x:Name="_txtText" Text="{Binding Title}"></TextBlock>
                        <TextBlock x:Name="_txtDescription" Margin="0 10 0 0" Text="{Binding Description}"></TextBlock>
                        <TextBlock x:Name="_txtHotKeyDescription" Margin="0 10 0 0" Text="{Binding HotKeyDescription}"></TextBlock>
                    </StackPanel>
                </Border>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

我设置了一些断点来查看是否访问了viewmodel。这是可以的。但是像标题这样的属性根本没有访问,我只看到没有任何文本的空矩形

有人有什么想法吗?

工具提示样式.可以';t绑定到数据上下文

刚刚解决了它(在边界中设置数据上下文)。也许有人会对感兴趣

<Style TargetType="ToolTip" x:Key="ButtonTooltip">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <Border  Background="LightYellow" BorderThickness="0.5" BorderBrush="Maroon" DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ToolTip}}}">
                    <StackPanel Orientation="Vertical" Margin="3">
                        <TextBlock x:Name="_txtText" Text="{Binding Title}"></TextBlock>
                        <TextBlock x:Name="_txtDescription" Margin="0 10 0 0" Text="{Binding Description}"></TextBlock>
                        <TextBlock x:Name="_txtHotKeyDescription" Margin="0 10 0 0" Text="{Binding HotKeyDescription}"></TextBlock>
                    </StackPanel>
                </Border>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>