繁体   English   中英

如何在工具提示中绑定其他元素

How to binding other element in ToolTip

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想在工具提示中绑定文本,但是我有一个问题,它的绑定值是其他元素控件,因此我基本上无法通过绑定获取它们的值。

<TextBlock x:Name="txb2" Text="Hello Stackoverflow"/>

<TextBox Grid.Row="1" TextChanged="TextBox_TextChanged">
    <TextBox.ToolTip>
        <TextBlock>
            <Run Text="{Binding ElementName=txb2, Path=Text}" FontWeight="Bold"/>
        </TextBlock>
    </TextBox.ToolTip>
</TextBox>

基本上我尝试绑定此代码。

2 个回复

如果查看输出,将看到错误:

System.Windows.Data错误:4:找不到参考'ElementName = txb2'的绑定源。 BindingExpression:Path = Text; DataItem = null; 目标元素是“运行”(HashCode = 58577354); 目标属性为“文本”(类型为“字符串”)

您可以使用x:Reference修复它:

<TextBlock x:Name="txb2" Text="Hello Stackoverflow"/>

<TextBox Grid.Row="1">
    <TextBox.ToolTip>
        <TextBlock>
            <Run Text="{Binding Source={x:Reference txb2}, Path=Text}" FontWeight="Bold"/>
        </TextBlock>
    </TextBox.ToolTip>
</TextBox>

至于ElementName和x:Reference之间的区别,请看以下线程 由于Tooltip不是Ui属性,因此ElementName不起作用,但是ElementName在搜索txb2时仅适用于Ui元素层次结构(可视树)。

工具提示存在于视觉树之外,因此无法按名称引用其他控件。 工具提示仅知道其自己的PlacementTarget-针对其显示的UIElement。

允许工具提示引用其他控件的一种方法是劫持此放置目标控件的一些其他未使用的属性(Tag最适合),然后可以由工具提示引用。

<TextBox x:Name="txb2" Text="Hello Stackoverflow" Width="200" />

<TextBox Grid.Row="1" Tag="{Binding ElementName=txb2}" Width="200">
    <TextBox.ToolTip>
        <ToolTip DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
            <TextBlock>
                <Run Text="{Binding Text}" FontWeight="Bold" />
            </TextBlock>
         </ToolTip>
    </TextBox.ToolTip>
</TextBox>

如果您使用的是MVVM设计模式,则另一种方法(不需要属性劫持)是绑定到PlacementTarget的DataContext(通常是ViewModel)。 然后,您可以将工具提示的内容绑定到所需的任何属性。

<ToolTip DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
    ....
1 如何在动态元素上绑定引导工具提示

使用 Bootstrap 工具提示时,我们需要编写类似这样的内容以具有工具提示功能: 但问题是,每次通过 ajax 加载新内容时,我们都需要重新运行该代码。 无论如何运行一次代码并在加载新元素时自动应用工具提示? 谢谢你。 ...

2 将事件绑定到TippyJS HTML工具提示中的元素

我正在使用TippyJS来显示HTML工具提示。 我在工具提示中有一些交互式内容,因此我想将事件绑定到那些元素。 由于工具提示内容是由Tippy动态生成的,因此标准jQuery事件绑定似乎无效。 我已经建立了一个这样的例子: HTML: JS: 这里有一个工作的C ...

3 如何绑定在Jquery UI工具提示中动态生成的元素

我正在使用Jquery UI工具提示小部件生成工具提示,该工具提示又发送AJAX请求以从服务器获取数据。 我正在尝试使用Jquery .on()绑定通过AJAX请求动态生成的元素。 但是,它只能工作一半时间。 我发现了一些类似的问题,但是它们处理的Bootstrap工具提示完全不同 ...

4 如何在Highcharts中绑定动态数据工具提示

现在我正在使用Highcharts。 谁能回答如何在highcharts的工具提示中绑定动态数据。 我已经将数据库中要显示在图表中的数据绑定到系列数据数组。 还可以。 但我也想在工具提示中将数据库中的其他数据显示为动态。 我不知道如何将数据传递到工具提示。 提前致谢。 ...

5 如何在datagrid行上绑定工具提示?

我正在尝试使用工具提示绑定datagrid行。 在哪种情况下我应该编写代码? 创建行的事件未保存要绑定的数据,并返回空白。 代码参考如下: 请帮忙。 ...

6 如何在代码后面绑定工具提示?

我有一个类(它将作为我的用户控件的基类),我希望能够通过后面的代码设置工具提示的绑定。 我似乎无法弄清楚如何使其正常工作。 我想通过从构造函数中调用函数“ SetToolTip”来将绑定设置为名为“ ToolTipText”的属性。 这是我到目前为止的内容: 但是,当我将鼠标悬 ...

10 在“绑定的” datagridview中设置工具提示

我在VB.Net(.NET Framework 4.0)中有一个DataGridView。 我通过“ XXX.DataSource”将自己类的实例列表绑定到该数据网格视图,从而将数据绑定到该数据。 我的班级具有公共属性,由于我使用的是绑定机制,因此它将自动填充该行的右侧单元格。 现在, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM