绑定转换器参数

2024-01-12

有没有办法我可以做到这一点Style:

<Style TargetType="FrameworkElement">
    <Setter Property="Visibility">
        <Setter.Value>
            <Binding Path="Tag"
                RelativeSource="{RelativeSource AncestorType=UserControl}"
                Converter="{StaticResource AccessLevelToVisibilityConverter}"
                ConverterParameter="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Tag}" />                        
        </Setter.Value>
    </Setter>
</Style>

我只需要发送Tag顶级父级和Tag我的转换器类的控制本身。


The ConverterParameter属性无法绑定,因为它不是依赖属性。

Since Binding不是源自DependencyObject它的任何属性都不能是依赖属性。因此,一个 Binding 永远不能成为另一个 Binding 的目标对象。

然而,还有一个替代解决方案。你可以使用MultiBinding http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx with a 多值转换器 http://msdn.microsoft.com/en-us/library/ms613613.aspx而不是普通的绑定:

<Style TargetType="FrameworkElement">
    <Setter Property="Visibility">
        <Setter.Value>
            <MultiBinding Converter="{StaticResource AccessLevelToVisibilityConverter}">
                <Binding Path="Tag" RelativeSource="{RelativeSource Mode=FindAncestor,
                                                     AncestorType=UserControl}"/>
                <Binding Path="Tag" RelativeSource="{RelativeSource Mode=Self}"/>
            </MultiBinding>
        </Setter.Value>
    </Setter>
</Style>

多值转换器获取源值数组作为输入:

public class AccessLevelToVisibilityConverter : IMultiValueConverter
{
    public object Convert(
        object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        return values.All(v => (v is bool && (bool)v))
            ? Visibility.Visible
            : Visibility.Hidden;
    }

    public object[] ConvertBack(
        object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绑定转换器参数 的相关文章

  • tabControl/tabitem 刷新困难

    我有一个带有 maintabWindow 和几个 tabitem 的 WPF 窗口 它通常工作正常 布局是这样的 但是当我之前添加以下窗口时 结果是这样的 所以问题与 tabControl tabItem 刷新有关 这是相当明显的 但更重要
  • Prism RegionAdapter - 删除然后添加视图

    我有一个包含 AvalonDock 的 prism wpf mef 解决方案 我创建了一个RegionAdapterBase
  • WPF - 在样式中使用 ControlTemplate 资源

    创建样式时 是否可以将 ControlTemplate 属性设置为先前定义的资源 例如 如果我在 ResourceDictionary 中有以下内容
  • 使用 TemplateColumns 将 WPF DataGrid 绑定到 DataTable

    我已经尝试了一切但一无所获 所以我希望有人能给我一个顿悟的时刻 我根本无法获得成功提取数据网格中数据的绑定 我有一个包含 MyDataType 的多列的 DataTable public class MyData string nameDa
  • 使用MVVM Light的Messenger在视图模型之间传递值

    有人可以帮我解释一下 MVVM Light 的 Messenger 吗 我正在阅读 StackOverflow 上的一篇文章 MVVM 在视图模型之间传递值 https stackoverflow com questions 6392854
  • 从模板绑定到 viewmodel 的属性

    我为我的 GameViewModel 创建了一个视图 我有一些像这样的xaml
  • 如何在Xamarin.Forms中将多个页面的BindingContext设置为同一个ViewModel?

    我是 Xamarin Forms 新手 我想使用 MVVM 模式和 XAML 创建一个跨平台应用程序 在我的表单项目 pcl 中 我想设置绑定上下文 of my MainPage以及将来的多个页面到同一个 ViewModel 这可能吗 让我
  • WPF 组合框如果只有 1 项则自动选择

    我有一个组合框 我绑定到一个可观察的集合 它会发生变化 根据选择的公司 并且大量公司将有一个帐户 项目 因此我想知道制作组合框的最佳方法是什么如果 ItemsSource 中只有 1 个项目 则设置 SelectedItem 否则将其保留为
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 如何在Wpf中的用户控件中调用MahApps Metro对话框

    当我尝试调用 MahApps Metro 对话框时 我在传递值时遇到错误 在传递参数时调用对话框控制时我需要传递 Metrowindow 参数 但我需要在用户控件中调用它 下面是当我需要对话框控制时我将调用的方法 public async
  • 无法使用 DialogResult

    我尝试使用DialogResult检查一个Messagebox s 是 否 取消 我正在使用以下代码 我没有看到任何问题 DialogResult dlgResult MessageBox Show Save changes before
  • WPF HierarchicalDataTemplate 不会在属性更改时更新 ItemsSource

    这是一些 XAML
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • 更改鼠标悬停时的矩形背景

    所以我有一个没有背景的矩形 当用户将鼠标悬停在其上时 我想给它一个背景渐变 然后当鼠标离开矩形时删除渐变 请有人发布所需的代码 并告诉我将其放在 cs xaml 文件中的位置吗 Thanks This
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 如何使 WPF 应用程序在 Web 浏览器上运行

    我们有一个用 WPF 编写的现有应用程序 我们正在寻找一种迁移它的方法 以便它可以在 Web 浏览器上运行 深入研究后 我们似乎需要找到一种将代码编译为 WebAssembly 的方法 但我不确定它对于现有的完全加载的 WPF 应用程序有多
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 混合 MFC 和 WPF:模态对话框

    我使用 C CLI 界面层将 C WPF 对话框添加到现有的 C MFC 应用程序 我一切正常 只是我遇到了形式问题 例如 MFC 应用程序使用 ShowDialog 显示 WPF 对话框 按预期工作 该 WPF 对话框显示使用 DoMod
  • 为 Angular2 中的组件加载多个样式表

    我正在构建一个 angular2 应用程序 当我尝试为同一组件加载多个样式表时 我面临多个问题 这是我正在做的代码 import Component from angular core Component selector my tag t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如

随机推荐

  • 从 C# 应用程序调用 azure powershell cmdlet 失败

    我试图自动化部署到天蓝色云的过程 我的 powershell 脚本可以做到这一点 当从 azure powershell 命令行执行它时 它的工作方式就像一个魅力 当我尝试从 C 应用程序调用相同的脚本时 它失败了 这是我的代码 inter
  • 从命令行使用网络摄像头拍照[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 Logitech 网络摄像头 适用于笔记本电脑的 QuickCam Pro 我想从命令行使用该摄像头拍摄快照 它有命令行界面吗 如果没有 是
  • 织物密码

    每次结构运行时 它都会要求输入 root 密码 是否可以将其与自动建议一起发送 fab staging test 我知道您已经询问过密码 但是配置系统以便您可以在没有密码的情况下进行结构 即 SSH 不是更好吗 为此 在本地计算机上执行以下
  • Julia 中向量的就地重排?

    是否可以在给定索引列表的情况下重新排列向量中的值 我有两个数组 我想排序arr2基于arr1两者都是预先分配的 indices zeros length arr1 sortperm indices arr1 arr2 indices lt
  • T4 输出到字符串

    我是 T4 的新手 我想生成 CRUD 存储过程 数据访问层 输出到字符串 我正在尝试创建一种对其他程序员也有用的 Web 服务 api 只需输入数据 然后下载 zip 文件 我已经搜索了很多 但找不到一种生成字符串输出的方法 是否可能 任
  • 在 C++ 中禁用复制省略

    免责声明 研究的目标是如何禁用所提供代码部分的复制省略和返回值优化 如果想提及诸如 XY 问题之类的问题 请避免回答 该问题具有严格的技术和研究性质 并且以这种方式明确提出 C 14 中引入了复制省略和返回值优化 如果某个对象已在一个表达式
  • 跨多个文件的 Javascript 中的全局变量

    我的一堆 JavaScript 代码位于名为 helpers js 的外部文件中 在调用此 JavaScript 代码的 HTML 中 我发现自己需要知道是否调用了 helpers js 中的某个函数 我试图通过定义创建一个全局变量 var
  • Log4J:警告无法为 Logger 错误找到 Appender

    下面是我的log4j properties文件内容 文件与eclipse中的src文件夹放在一起 Application Logs log4j rootlogger INFO logg log4j appender logg org apa
  • Facebook 应用程序是使用 PhoneGap 或 Appcelerator 等移动开发框架构建的吗?

    我发现了numerous http venturebeat com 2011 07 08 hybrid mobile apps take off as html5 vs native debate continues sources htt
  • node.js http.get 在对远程站点发出 5 次请求后挂起

    我正在编写一个简单的 api 端点来确定我的服务器是否能够访问互联网 它工作得很好 但是在 5 个请求之后 每次都是 5 个 请求就会挂起 当我将 Google 切换到 Hotmail com 时 也会发生同样的情况 这让我觉得这是我的事情
  • 从另一个应用程序启动时,应用程序将失去记住其堆栈的能力

    现在我已经对此进行了更多研究 我写这篇文章是为了让它更清楚 如果您正在寻找更多信息 可以在旧版本中找到一些信息 怎么了 这是指没有设置任何launchMode的应用程序 设置 因此使用默认值 您可以从市场或安装程序启动应用程序 这 启动应用
  • 将特定风格的依赖关系与维度链接起来

    我正在开发一个 Android 应用程序 它有两种类型 免费和付费 每层都有 2 个版本 轻型和重型 这是 Gradle 的实现 flavorDimensions tier distro productFlavors free dimens
  • Java 10:替换 java.xml.ws 冲突

    我必须使用java xml ws 我的项目中包含一些组件 但因为它已被弃用并且很快就会被删除 所以我想使用这些组件的替代品 所以我将此依赖项添加到我的项目中pom file
  • 如何从 Dart 的 List 中获取随机元素?

    如何从 Dart 集合中检索随机元素 var list a b c d e import dart math var list a b c d e generates a new Random object final random new
  • 为什么一个字节只有0到255?

    为什么一个字节的范围只有0到255 严格来说 术语 字节 实际上可以指具有 256 个值以外的单元 只不过是这样而已几乎普遍尺寸 从维基百科 http en wikipedia org wiki Byte 从历史上看 一个字节是 用于编码单
  • 错误 c4996 检查迭代器

    我使用 VC 2013 我有以下代码 pragma warning disable 4996 define D SCL SECURE NO WARNINGS include
  • LinqToSql 和 WCF

    在使用 WCF 服务与数据库交互的 n 层应用程序中 在整个应用程序中使用 LinqToSql 类的最佳实践方法是什么 我见过它以几种不同的方式完成 但它们似乎花费了大量时间来创建额外的接口 消息类等 这减少了您无需编写数据访问代码而获得的
  • 一次按多个键让我的角色沿对角线移动

    我遇到的问题是 当用户按下 K UP 键和 K RIGHT 键或 K UP 键和 K DOWN 键等时 我试图使我的角色在屏幕上对角移动 这是我的角色移动代码 事件处理 1 Event Handling 2 for event in pyg
  • 无法加载文件或程序集“ServiceStack”或其依赖项之一。该系统找不到指定的文件

    我试图将我的网络应用程序启动到服务器 Server Windows Server 2008 R2 企业版 IIS版本 7 5 框架版本 4 0 30319 17929 但出现以下错误 Server Error in salavirtual
  • 绑定转换器参数

    有没有办法我可以做到这一点Style