如何在WPF中绑定逆布尔属性?

2023-11-23

我所拥有的是一个具有IsReadOnly财产。如果这个属性为真,我想设置IsEnabledButton 上的属性(例如)设置为 false。

我愿意相信我可以像IsEnabled="{Binding Path=!IsReadOnly}"但这不适用于 WPF。

我是否必须完成所有样式设置?对于像将一个布尔值设置为另一个布尔值的逆这样简单的事情来说似乎太冗长了。

<Button.Style>
    <Style TargetType="{x:Type Button}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=IsReadOnly}" Value="True">
                <Setter Property="IsEnabled" Value="False" />
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=IsReadOnly}" Value="False">
                <Setter Property="IsEnabled" Value="True" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Button.Style>

您可以使用 ValueConverter 来为您反转 bool 属性。

XAML:

IsEnabled="{Binding Path=IsReadOnly, Converter={StaticResource InverseBooleanConverter}}"

转换器:

[ValueConversion(typeof(bool), typeof(bool))]
    public class InverseBooleanConverter: IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            if (targetType != typeof(bool))
                throw new InvalidOperationException("The target must be a boolean");

            return !(bool)value;
        }

        public object ConvertBack(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            throw new NotSupportedException();
        }

        #endregion
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在WPF中绑定逆布尔属性? 的相关文章

  • 使用 WPF 动态加载内容

    好的 我有一个容器 我为其创建了两个数据模板 基本上 一个模板将显示 5 个文本框 其中包含绑定到它们的对象数据 另一个模板将显示一个用于添加该特定对象的按钮 我对 DataTemplateSelector 进行了子类化 它可以工作 但是当
  • 更改 WPF 应用程序清单?

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • 为什么我的 WPF 复选框绑定不起作用?

    我正在使用 MVVM VS 2008 和 NET 3 5 SP1 我有一个项目列表 每个项目都公开一个 IsSelected 属性 我添加了一个复选框来管理列表中所有项目的选择 取消选择 更新每个项目的 IsSelected 属性 一切正常
  • Prism 7. 将 PrismApplication.CreateShell() 与非 Window 控件一起使用

    我想从 6 3 更新到 7 我似乎遇到了障碍 在 App xaml 中使用 PrismApplication 类时 CreateShell 期望返回类型为 Window 而不是之前需要 DependencyObject 的 BootStra
  • 属性和依赖属性有什么区别

    依赖属性的创建方式与属性相同 依赖属性是否仅在创建自定义控件时使用 依赖属性和标准属性有很大不同 依赖属性提供的关键功能是支持binding and 动画片 如果您想使用Binding或模板绑定该属性需要是依赖属性 当对属性进行动画处理时
  • WPF 画布缩放/变换以适合

    我重新发布这个问题 因为上次我没有得到太多答复 希望重新措辞可能有所帮助 本质上 我想做的是创建一个数据绑定画布 它将自动缩放其内容以 填充 可用空间 有点像缩放以适应操作 不幸的是 我的 WPF 技能还不是很强 我正在努力弄清楚如何完成最
  • WPF - 全局样式?

    有没有办法为我的 WPF 应用程序设置全局样式 我希望做的是将样式应用于所有也有图像子项的按钮 嗯 有点 这是您可以做的一种包罗万象的方法 将以下元素放入您的 App xaml 中 所有按钮都会发生变化 除了您手动应用样式的按钮 但是 如果
  • WindowsFormsHost ZOrder

    看起来 WindowsFormsHost 控件被设置为显示在顶部 有没有办法更改其 z 顺序 以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件之上可见 不幸的是 不能 由于 winformshost 合成到 W
  • Android 在 WPF 中的涟漪效应

    我喜欢 Android 的新动画 当你触摸一个控件 listviewitem 按钮等 时 它会执行如下所示的简洁动画 我想知道如何在全球范围内为 WPF 中的所有 可点击 控件以良好的方式实现这一点 我特别需要帮助的是如何在控件上创建圆圈
  • 应用程序启动时将焦点设置在 PasswordBox 上

    我无法将焦点设置在我的 PasswordBox 控件上是否有原因 C public Login InitializeComponent password Focus XAML
  • 以编程方式获取 DataGridColumnHeader ContextMenu

    我在 View cs 中有这段代码 var contextMenu this dataGridFacade GiveContextMenuForDataGrid this DataGridAllJobs this DataGridAllJo
  • 从视图模型调用方法的命令

    好吧 我倾向于避免使用命令 因为它们总是让我感到困惑 但我正在进行一个新项目 并且正在尝试正确构建它 并且在我看来没有任何代码隐藏 基本上我现在想做的就是连接一个按钮来触发一个命令 在我的视图模型上执行一些操作 但不知何故 如此简单的事情仍
  • 从 Angular 2 和 Silverlight 应用程序使用相同的 WCF 服务

    目前 我们有一个带有 WCF 服务 后端 的 Silverlight 应用程序 前端 现在 我们将用 Angular 2 应用程序替换 Silverlight 应用程序 而不更改 WCF 服务 只有 UI 会发生变化 在开始使用 Angul
  • 如何在WPF中裁剪图像并保存到ImageSource中?

    我是 WPF 的新学员 我有一个问题 我有一个图像 宽度 360 高度 360 在这里 我想裁剪该图像 如下所示 0 0 到 120 120 保存到第一个 ImageSource 对象 120 0 到 240 120 保存到第二个 Imag
  • 如何使用 MVVM 更改数据网格或列表视图中的内容

    我有一个 MainWindowViewModel DataContext 它公开不同的 ObservableCollections 带有 INotifyProperty 的 poco 对象的视图模型 从组合框中选择一个值后 我想单击一个加载
  • wpf中的图像问题(图像不显示)

    我不明白为什么我无法在 WPF 中显示图像 也许我不小心修改了我的资源文件夹 这就是我没有显示的原因 所以我创建了一个新的 wpf 应用程序 我有这个 当我运行该程序时 我的图片显示为 为什么当我尝试在程序中执行相同的操作时 图像没有显示
  • 为什么我的窗口没有被垃圾收集?

    我有一个标准的 CRUD 应用程序 可以处理相当大量的数据 不同的窗口使用 Linq To SQL 访问不同的表 每个窗口本质上都有一个网格 其中的单元格绑定到我正在显示的对象 这是正在发生的事情的一个非常标准的用例 打开窗口A 关闭窗口
  • 打开和关闭 WPF DataGrid 背景图像?

    我有一个 DataGrid 当它为空时 我希望显示背景图像 当填充 DataGrid 时 我希望图像消失 并在再次清除 DataGrid 时重新出现 这可以通过 XAML 或 C 实现吗 if myDataGridView Rows Cou
  • 如何使用 Dispatcher.Invoke 返回值?

    任何人都知道如何返回一个值Dispatcher http msdn microsoft com en us library system windows threading dispatcher aspx Invoke http msdn
  • WPF 中的图像变得模糊

    我正在使用 C 在 WPF 中开发应用程序 我将图像放入 WrapPanel 中 并在带有一个边框的网格内显示 并在按钮中使用图像 问题是我的图像控件失去了质量 我无法在这里发布我的图片 所以我只是在这里描述 I used SnapsToD

随机推荐

  • HTML/CSS。去上课吗?

    在 HTML 中 您可以使用标签 TOP 直接进入页面顶部 出于这个原因 我想也许还有可能 单击我的网页中的链接并直接转到特定的类 仅限 html csss 是否可能 不是针对特定的类 因为可以有许多元素具有相同的类名 但使用 ID 是可能
  • 在java中从dropbox下载文件

    我正在编写一个 swing 应用程序 但我确信稍后我会想到更多内容添加到其中 所以我想要一种从 dropbox 下载文件 如果是新文件 的方法 我尝试了很多不同的方法 但他们给我的只是页面的 HTML 有人知道怎么做吗 我当然不会 在我看来
  • 是否可以在同一页面上使用 2 个版本的 jQuery?

    注意 我知道已经有人问过类似的问题here and here 但我正在寻找有关如何进行这项工作的更多说明或完全避免它的充分理由 我正在向已使用旧版本 jQuery 库 1 1 3 1 的现有网站添加功能 我一直在针对最新版本的 jQuery
  • 没有这样的文件或目录错误

    这是我收到的错误 Traceback most recent call last File E stuff module py line 91 in
  • 如何停止枚举 NSAttributedString 的属性?

    在文档中enumerateAttribute据说 关于方法stop该块的参数是 该块可以将该值设置为 true 以停止对该集合的进一步处理 然而 在块内stop参数是一个let我无法将其设置为true 我需要在找到第一个属性出现后停止枚举
  • JavaScript 查找 json 值 [重复]

    这个问题在这里已经有答案了 我需要在国家 地区的 json 列表中搜索 json 是这样的 name Afghanistan code AF name land Islands code AX name Albania code AL na
  • Android RecyclerView重叠项目(卡堆栈)

    如何重叠 RecyclerView 中的项目 就像堆叠卡片一样 提前致谢 要重叠 recyclerView 行 您可以使用它 将此类添加到您的活动中 您可以自定义 vertOverlap public class OverlapDecora
  • D3 树布局可视化 - 继承具有多个父项的子项

    我是 D3 可视化的新鲜人 目前正在为数据沿袭创建 D3 树布局可视化 在数据沿袭流中 子节点可以从多个父节点派生 这是一个例子 在下面的示例中 DevLead 可能与 2 名经理一起工作 var data name Director pa
  • 如何在 Cloud Firestore 中移动文档?

    有人可以帮助我如何在 Cloud Firestore 中重命名 移动或更新文档或集合名称吗 另外 我是否可以访问我的 Cloud Firestore 以从终端或任何应用程序更新我的集合或文档 其实没有move方法允许您简单地将文档从一个位置
  • 在 Eclipse 中选择远程系统类型列表为空

    我想在 Eclipse Luna 中进行交叉编译 Windows gt Linux 但是当我想在远程系统视图中添加连接时列表为空 我已经在 Eclipse 中安装了最新的 RSE 也许我错过了一个我还不知道的重要点 这就是为什么它是空的 有
  • 如何使用 Rhino Mocks 来模拟 HttpContext.Application

    我是 Mocking 框架的新手 并开始使用 RhinoMocks 来协助我的 MVC 应用程序单元测试 我在用着Scott Hanselmanns MVC 模拟助手协助模拟 HttpContext 我已经成功地 一段时间后 模拟了一些我需
  • 在 Rails 中,如何使用视图呈现 JSON?

    假设您在 users 控制器中 并且想要获取 show 请求的 json 响应 如果您可以在 views users 目录中创建一个名为 show json 并在 users show 之后的文件 那就太好了操作完成 它呈现文件 目前您需要
  • css中direction和text-align的区别

    两者有什么区别 方向 右转 文本对齐 右对齐 相关this问题 方向从右到左对元素进行排序 Example div div style display inline block A div div style display inline
  • 处理与 R 的数据库交互中的字段类型

    我使用 RMySQL 和 MySQL 数据库来存储我的数据集 有时数据会被修改 或者我也会将结果存储回数据库 长话短说 在我的用例中 R 和数据库之间有相当多的交互 大多数时候我使用方便的功能 例如dbWriteTable and dbRe
  • 将 2 个静态库链接到 1 个 iOS 静态库

    我在 Xcode 中创建了两个单独的静态库 用于在 iOS 上使用 A 和 B A 使用 B 中定义的方法 当创建需要 A 和 B 的新 Xcode 项目时 我可以分别包含它们 然而 为了简化集成 我更喜欢创建一个包含 A 和 B 的通用框
  • “错误:请求‘a’中的成员‘size’,它是指针类型”,但我不认为它是一个指针

    所以 我以为我正在尝试做一些简单的事情 但显然不是 我编写了这个函数 以便以后可以扩展它 并在需要时通过以下方式快速为用户提供菜单menu mystrings int menu string a int choice 0 cout lt l
  • Java 13 SE 规范不需要缓存装箱的 Byte 对象吗?

    阅读JAVA 13 SE规范 我发现在第5章 第5 1 7节 拳击转换有以下保证 如果被装箱的值 p 是计算常数的结果 boolean char short int 或 long 类型的表达式 15 28 以及 结果为 true false
  • 调试 R 中未由包导出的函数

    我想逐步使用debug or trace 未导出的函数 例如 我该如何做vcov polr包装的MASS 从函数中调用polr polr已导出 但 vcov polr 未导出 也就是说 当我跑步时polr 我希望调试浏览器在代码输入后启动v
  • 生成低位深度的图像文件?

    bpp 每像素位数 因此 32bpp 意味着 R G B A 为 8 8 8 8 就像 NET 有一个枚举 System Drawing Imaging PixelFormat 现在一旦我有一个Bitmap or Image对象与我的图形
  • 如何在WPF中绑定逆布尔属性?

    我所拥有的是一个具有IsReadOnly财产 如果这个属性为真 我想设置IsEnabledButton 上的属性 例如 设置为 false 我愿意相信我可以像IsEnabled Binding Path IsReadOnly 但这不适用于