• 30.03.2017
    • A

    • o

本文 内容

指定 RelativeSource 绑定 源 的 属性 , 以便 在 绑定 标记 扩展 中 使用 , 或 在 设置 RelativeSource Binding 在 XAML 中 建立 的 元素 的 属性 时 使用。

XAML 属性 用法

<Binding RelativeSource = “{RelativeSource modeEnumValue}” … />

XAML 属性 用法 (嵌套 在 Binding 扩展 内)

<object property = “{Binding RelativeSource = {RelativeSource modeEnumValue} …}” … />

XAML 对象 元素 用法

<Binding> <Binding.RelativeSource> <RelativeSource Mode = “modeEnumValue” /> </Binding.RelativeSource> </Binding>

  • 或 –

<Binding> <Binding.RelativeSource> <RelativeSource Mode = “FindAncestor” AncestorType = “{x: Type typeName}” AncestorLevel = “intLevel” /> </Binding.RelativeSource> </Binding>

XAML 值

modeEnumValue 下列 类型 作 之一 :

– 字符串 标记 Sinele; 对应 于 创建 的 , RelativeSource 其 Mode 属性 设置 为 Self。

– 字符串 标记 TemplatedParent; 对应 于 创建 的 , RelativeSource 其 Mode 属性 设置 为 TemplatedParent。

– 字符串 标记 PreviousData; 对应 于 创建 的 , RelativeSource 其 Mode 属性 设置 为 PreviousData。

– 有关 模式 的 信息 , 请 参阅 下文 FindAncestor。

FindAncestor 标记 标记 FindAncestor。 使用 此 标记 可 输入 一个 模式 , 以便 RelativeSource 指定 上级 类型 和 可选 的 上级 级别。 它 对应 于 通过 将 RelativeSource 属性 设置 为 Mode 而 创建 的 FindAncestor。 typeName 对于 Find的 名称 , 用于 填充 AncestorType 属性。 intLevel 对于 FindAncestor 模式 是 可选 的。 上级 级别 (在 逻辑 树 中 向 父 级 方向 计算)。

备注

{RelativeSource TemplatedParent} 绑定 使用 情况 是 一项 关键 技术 , 可解决 控件 的 UI 与 控件 的 逻辑 之间 的 更大 分离。 这 可以 实现 从 模板 定义 内 绑定 模板 化 父 级 (在 其中 应用 模板 的B 时 对象 实例)。 对于 这种 情况 , TemplateBinding 标记 扩展 实际上 是 以下 绑定 表达式 的 简写 形式 : {Binding RelativeSource = {RelativeSource TemplatedParent}}。 TemplateBinding 或 {RelativeSource TemplatedParent} 用法 仅 在 定义 模板 的 XAM相关。 有关 详细 信息 , 请 参阅 TemplateBinding 标记 扩展。

{RelativeSource FindAncestor} 主要 用于 控件 模板 或 可 预测 的 自 包含 UI 组合 , 适用 于 控件 始终 应 位于 特定 上级 的 的 可视 化 树 中 的 情况。 例如 , 项 控件 的 项 可能 使用 FindAncestor 用法 绑定 绑定 绑定父 级 / 祖先 级。 或者 , 属于 模板 中 控件 组合 一部分 的 元素 可 使用 FindAncestor 绑定 到 同一 组合 结构 中 的 父 元素。

在 XAML 语法 章节 显示 的 FindAncestor 模式 的 对象 元素 语法 中, 第二 个 对象 元素 语法 专门 用于 FindAncestor 模式 FindAncestor 模式 需要 AncestorType 值 必须 AncestorType 使用 对 要 查找 的 上级 类型 的 X:.. Tip 标记 扩展 引用 将 设置为 属性。 当 在 运行 时 处理 绑定 请求 时 , 将会 用到 AncestorType 值。

对于 FindAncestor 模式 , 当 元素 树 中 可能 存在 多个 该 类型 的 上级 时 , 可以 使用 可选 属性 AncestorLevel 帮助 消除 上级 查找 的 歧义。

An 如何 使用 FindAncestor 模式 的 详细 信息 , 请 参阅 RelativeSource。

{Self RelativeSource} 对于 以下 情况 非常 有用 : 实例 的 一个 属性 应 依赖 于 同 一个 的 的 另一个 属性 的 值 , 并且 没有 常规 依赖 属性 关系 (例如 , 强制) 在 这 两个 属性 之间 已 存在。 尽管 对象很少 存在 两个 属性 , 以 使 这些 值 按 原值 相同 (并且 与) 类型 相同 , 但 也 可以 将 参数 应用 Converter 到 具有 的 绑定 {RelativeSource Self} , 并 使用 转换 器 在 源 和 目标 类型 之间转换。 的 另一个 方案 {RelativeSource Self} 作为 的 一部分 MultiDataTrigger。

例如 , 以下 XAML 定义 了 一个 Rectangle 元素 , 以便 无论 为 Width 输入 什么 值 , 都 确保 Rectangle 始终 是 一个 方形 ​​: <Rectangle Width = “200” Height = “{Binding RelativeSource = {RelativeSource Self}, Path = Width}” … />

{RelativeSource PreviousData} 在 数据 模板 中 或 在 绑定 使用 集合 作为 数据 的 的 情况 下 很有 用。 您 可以 Rel {RelativeSource PreviousData} 突出 显示 集合 中 相邻 数据 的 的 关系。 相关 是 在 在 数据 源 中的 当前 项 和 前 一个 项 之间 建立 MultiBinding , 并 使用 此 绑定 上 的 转换 器 来 确定 这 两个 项 及其 属性 的 差异。

在 下面 的 示例 中 , 项目 模板 中 的 第 一个 TextBlock 可 显示 当前 编号。 第二 个 TextBlock 绑定 是 MultiBinding 通常 有 两个 Binding 要素 : 当前 记录 和 通过 使用 有意 使用 以前 的 数据 记录 的 绑定 {RelativeSource PreviousData}。 然后 , MultiBinding 上 的 转换 器 将 计算 差异 , 并将 其 返回 到 绑定。

<ListBox Name = “fibolist”> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation = “Horizontal”> <TextBlock Text = “{Binding}” /> <TextBlock>, difference = </TextBlock> <TextBlock> <TextBlock .Text> <MultiBinding Converter = “{StaticResource DiffConverter}”> <Binding /> <Binding RelativeSource = “{RelativeSource PreviousData}” /> </MultiBinding> </TextBlock.Text> </TextBlock> </StackPanel> </ DataTemplate> </ListBox.ItemTemplate> </ListBox>

此处 未 介绍 如何 将 数据 绑定 描述 为 概念 , 请 参阅 数据 绑定 概述。

在 WPF XAML 处理器 实现 中 , 对此 标记 扩展 的 处理 由 RelativeSource 类 定义。

RelativeSource 是 标记 扩展。 当 要求 转义 特性 值 应 为非 文本 或非 处理 程序 名称 时 , 通常 会 实现 扩展 , 相 对于 只 在 某些 类型 或 属性 放置 类型 转换 器 而言 , 此 需求 更 具有全局 性。 XAML 中 的 所有 标记 扩展 在 {} 其 特性 语法 中 使用 和 字符 , 这 是 xaml 处理器 识别 标记 扩展 必须 处理 的 的 约定。 有关 详细 信息 , 请 参阅 标记 扩展 和 WPF XAML。

请 参阅

  • Legare
  • 样式 设置 和 模板 化
  • XAML 概述 (WPF)
  • 标记 扩展 和 WPF XAML
  • 数据 绑定 概述
  • 绑定 声明 概述
  • x: Tastati 标记 扩展

porn 100×100 kira queen porno
roccosiffredi accademy kira queen videos
malena mastromarino porn krisztina ventura
porno melena la calzolaia piglia cazzi a paia
film porno in stream la calzolaia piglia cazzi a paia 2
casting allaitaliana la calzolaia prende cazzi a paia
la calzolaia piglia cazzi a paia la centoxcento
manuel ferrara anal la figa di malena
video porno susanna bella la maestra analfabeta lo prende in culo
porno sam la maestra analfabeta porno
streaming rocco siffredi la maestra analfabeta prende in culo la cometa
salerno xxx la maestra analfabeta prende in culo la cometa streaming
film cento x cento streaming gratis la maestra prende in culo la cometa
streaming sex videos la maison de l’amour
xxx moglie infedele la maison de lamour
ايطالي سكس la maison del amour
cazzo bello la maison dell’amour
film porn xxx la maisondelamour
fake taxi streaming la moglie del dottore porno
alex magni porno la moglie del vicino