- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Datagrid,它有一个 DataGridTemplateColumn,其中包含一个 ListView,其 Itemsource 绑定(bind)到一个字符串数组。
在该 ListView 中,我定义了一个 ItemTemplate,因为我希望列表中每个项目的前景都取决于条件 - 所以它应用于 TextBlock。
我希望在 ListView 中的每个项目悬停时显示工具提示,因此我在该 TextBlock 中定义了一个工具提示
我想要做的是让工具提示通过使用转换器(以获取不同列表中的项目索引)显示有关特定项目的标题/详细信息。
为此,我需要工具提示来了解 ListView 项,但我似乎无法让它工作。 TextBlock 本身使用 Path=.
检索它,我尝试将 TextBlock 命名为 ListItem
并将其检索为 ElementName 无济于事 - 结果只是空字符串。
这是相关的 xaml(删除了格式化属性)。
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock x:Name="ListItem" Text="{Binding Path=.}" Foreground="{Binding RelativeSource={RelativeSource Self}, Path=Text, Converter={StaticResource ConvertItemToColour}}">
<TextBlock.ToolTip>
<ToolTip>
<StackPanel Orientation="Vertical">
<Label>
<TextBlock Text="{Binding ElementName=ListItem, Path=Text, Converter={StaticResource ConvertItemToTitle}}"/> <!-- Item Title -->
</Label>
<Label>
<TextBlock/> <!-- Item Description -->
</Label>
</StackPanel>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
最佳答案
工具提示
, like Popup
, 不是主要可视化树的一部分,因此 ElementName
和 RelativeSource
绑定(bind)都不会在 ToolTip
之外工作,但会在 DataContext
内部工作ToolTip
仍应与 ListViewItem
<ToolTip>
<StackPanel Orientation="Vertical">
<Label>
<TextBlock Text="{Binding Path=., Converter={StaticResource ConvertItemToTitle}}"/>
</Label>
</StackPanel>
</ToolTip>
Text="{Binding Path=.}"
应该在 ToolTip
中给出与在 DataTemplate
关于c# - 来自 Binding ElementName 的值生成空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31595368/
我的项目中有这个 xaml: // ... 我在 MyControl 类中定义了 IsEditing 依赖属性。 namespace MyNamespace { public pa
我有两个继承自 BaseClass 的子类。 我正在尝试对 BaseClass 类型 的对象使用反射来获取 XmlRootAttribute.ElementName 值。那么,如果有人传入一个 Bas
这是我的网址的一部分 Новый Афон Пицунда Гудаута Гагра Сухум 用户输入城市名称,例如:“Пицунда”,我
我创建了一个显示文件列表的 JTree。这些文件的长度不同。我想在 JTree 中以相同的长度显示它们,例如 20 个字符。如果名称大于 20 个字符,它应该出现在工具提示中。 如何实现?下面是我的
以下哪些 TextBlocks 的绑定(bind)会消耗更多性能: 我确信当 TextBlocks 处于具有许多 sibling 和祖先的高嵌套级别时,我的问
我正在对 Web 应用程序进行一些维护编码,我收到一个 javascript 错误,格式为:“[elementname] 没有属性” 部分代码是通过 AJAX 调用即时生成的,该调用更改了部分页面的
通过名称进行绑定(bind)自引用与通过 RelativeSource 进行自引用之间有什么区别? 例如: 相对 在我的项目中,它们的行为似乎相同,但我直接在窗口中使用它们。这意味着我立即更喜
我有以下 XAML: ... ...
根据x:Reference Markup Extension MSDN 页面,x:Reference References an instance that is declared elsewhere
我已将 MenuFlyout 添加到 ItemsControl.ItemTemplate 中的按钮。我也能够将当前项目绑定(bind)为 CommandParameter。现在我想将 Command
我正在使用 xml,并使用 xsd 来验证我的 xml 文件。我的 xsd 和 xml 文件太长,我可以给你其中的一部分。 XSD 文件: ...
我有一个 Datagrid,它有一个 DataGridTemplateColumn,其中包含一个 ListView,其 Itemsource 绑定(bind)到一个字符串数组。 在该 ListView
我正在尝试将类对象序列化为如下所示的 xml: 0,000 0,000 1,000 1,000 1,000 0,000 0,000 1,000 重要的是没有直
这是 XAML: 绑定(bind)返回错误:System.Windows.Data 错误:2:找不到目标元素的管理 Fram
我有两个 XSD 文件,我想要两个不同的 xsd 文件的元素具有相同的名称但具有不同的属性类型。 假设下面是xml1.xsd te
我有一个datagrid,在datagridtemplatecolumn中,我有一个togglebutton,在检查时,它会在elementName binding的帮助下打开弹出窗口。。
我想创建一个在后台执行操作并可通过托盘图标进行控制的应用程序。这个托盘图标有一个带有复选框的上下文菜单,可以将其设置为已启用,然后后台任务就会启动。 我正在使用 WPF 和 Hardcodet WPF
我正在尝试绑定(bind)一个依赖于同一 DataTemplate 中控件的属性。 举例说明:
我有一个应用程序,它让我可以选择通过 RessourceDictionary 更改应用程序主题,这意味着我只能使用纯 XAML。 现在,我想做的是隐藏一个 DockPanel,它没有 ElementN
使用传统的 {Binding} 语法时,您可以指定元素名称以指向页面上的特定控件,并能够访问其属性。例如,如果页面名为 page你可以这样做: {Binding ElementName=Page, P
我是一名优秀的程序员,十分优秀!