空到布尔 IValueConverter 不工作

2023-12-20

如何使用 IValueConverter 将空值转换为布尔值?

我正在使用 wpf 尝试显示一堆布尔值(在复选框中)。创建新记录时,这些值为空,并在复选框中显示为“不确定”。我希望空值出现并保存为“假”值。

我尝试创建一个 NullToBoolean 转换器,它从数据库中获取 null 值并将其显示为 false,and then当用户点击保存时将它们保存为 false。 (本质上,我试图避免用户必须在复选框中单击两次(一次使其为真,然后再次使其为假)。这似乎适用于导入 - 即空值显示为假 - 但除非我执行两次单击舞蹈,保存时数据库中的值不会更改。

我的转换器:

[ValueConversion(typeof(bool), typeof(bool))]
public class NullBooleanConverter : IValueConverter
{

  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  {
    if (value != null)
    {
      return value;
    }
    return false;
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
    if (value != null)
    {
      return value;
    }
    return null;
  }
}

我试图让转换器使用的复选框之一:

    <CheckBox Grid.Column="1" Grid.Row="0" Padding="5" Margin="5" VerticalAlignment="Center" Name="chkVarianceDescriptionProvided" IsThreeState="False">
      <CheckBox.IsChecked>
        <Binding Path="VarianceDescriptionProvided" Mode="TwoWay">
          <Binding.Converter>
            <utils:NullBooleanConverter />
          </Binding.Converter>
        </Binding>
      </CheckBox.IsChecked>
    </CheckBox>

我不知道问题是否是因为我的代码错误,或者是否是转换器认为没有任何改变,因此不需要ConvertBack。我已经尝试了所有Modes 并用 ConvertBack 切换了 Convert 中的代码,但似乎没有任何效果。

有人可以指出我需要做什么来解决这个问题吗?


嗯,如果可以开箱即用,为什么还要使用转换器呢?

<CheckBox IsChecked="{Binding VarianceDescriptionProvided, TargetNullValue=False}" />

欲了解更多信息,请查看here http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.targetnullvalue.aspx.

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

空到布尔 IValueConverter 不工作 的相关文章

随机推荐

  • 仅在node_modules中跳过库检查

    关于禁用错误输入中的错误有几个问题node modules e g this one https stackoverflow com questions 49906424 rxjs5 typescript typings fail 4991
  • jQuery UI 抖动 - 填充消失

    我遇到了这个小问题 我的包装纸里有一个盒子 我想来回摇晃它 效果很好 但是当我添加填充时 box动画打开时 填充会消失 这 box还有一个box sizing border box所以填充不会影响盒子的大小 如果我删除box sizing
  • 重定向而不更改 URL Apache

    我想将一个 URL 重定向到另一个 URL 而不更改浏览器 URL www example com abc xml 应重定向到 www example com abc xyz index htm file 1 但浏览器应该显示 www ex
  • 暂停代码执行但让 Excel 工作

    我正在制作一个宏 我想做以下事情 打开一个文件 等待文件填满数据 该文件使用单元格公式从外部数据库下载数据 下载大约需要15秒 20 秒后检查是否所有内容都已下载 如果没有 请再等待 10 秒 总共等待最多一分钟 如果所有内容都已下载 请存
  • Android ViewPager setCurrentItem 在 onResume 后不起作用

    我遇到了这个奇怪的问题ViewPager s setCurrentItem position false 工作得很好 然后我切换到另一个活动 在我回到第一个活动后 ViewPager总是以第一个项目结束 尽管我已经添加了setCurrent
  • 如何在 MySql 数据库中存储布尔值数组?

    就我而言 每个 项目 要么有属性 要么没有 这些属性可能有数百个 因此我需要每个项目最多 1000 个真 假位 有没有一种方法可以将这些位存储在项目的一个字段中 如果您正在寻找一种可搜索的方式来执行此操作 那么不行 几种可搜索的方法 涉及超
  • 将 Gatsby JS 站点部署到 Netlify 时,“运行命令时出错:构建脚本返回非零退出代码”

    我最近遇到了 Gatsby JS https github com gatsbyjs gatsby https github com gatsbyjs gatsby 并决定在生成器之上构建我的投资组合网站 所以我分叉了他们的入门网站 gat
  • 打印或死亡:如何检查 GPFS 网络安装的文件是否可用

    我有一个 Perl 脚本 用于写入位于 GPFS 网络安装存储点上的文件 有一个标准检查open FILE or die 文件系统宕机了 但是脚本并没有退出 它一直在努力写作 文件系统恢复后 Perl 脚本完成 如何检查文件系统是否可以写入
  • 来自 istream 的子流

    假设我有一个ifstream它代表一个包含许多聚合在一起的子文件的大文件 我希望能够创建一个 子 istream从较大的ifstream 给定大小和偏移量 表示文件的一部分 以便其他代码可以从该子流中读取 就好像它是一个独立的一样istre
  • 对于非非空初始化,生命周期在初始化之前开始,它解决了什么问题?

    当前的标准草案说 以前的标准有类似的措辞 基本生活 1 http www eel is c draft basic life 1 对象或引用的生命周期是该对象或引用的运行时属性 据说一个物体有非空的如果它是类或聚合类型 并且它或其子对象之一
  • 如何在 iOS 的照片拼贴中滑动时调整视图大小?

    我正在编写一个照片编辑器演示 用户可以水平或垂直滑动以将视图分割为他们想要的许多小视图 然后用户可以拖动每个视图的边框来重新调整视图的大小 问题是我不知道如何制作照片拼贴 用户可以拖动视图边框来改变视图的大小 我认为每个白色边框 如下图所示
  • Spark DataFrame `regexp_replace` 中的反向引用

    我最近试图回答一个question https stackoverflow com questions 40146760 splitting row in multiple row in spark shell 40148915 40148
  • 从 JavaScript + JSF 调用 Backing bean 方法 [重复]

    这个问题在这里已经有答案了 我想从 JSF 中的 javascript 函数调用支持 bean 方法 请您指导我如何实现这一目标 问候 拉维 克里什 因为 支持 bean 方法 id 服务器端 所以你需要向服务器发出请求 适合你的情况的更好
  • 有没有办法引用 yaml 数组中的特定元素?

    有没有办法引用 yaml 数组中的特定元素 例如 如果我有这样的 yaml node list one two three 我可以做这样的事情吗 first node node list 0 仅具有锚点和别名 例子 node list fi
  • ssis生成json文件删除返回

    我正在使用脚本任务从 sql 查询生成 json 文件 脚本任务中的c 代码 public void Main TODO Add your code here ConnectionManager cm string sqlString Sy
  • RSpec 模拟对象示例

    我是模拟对象的新手 我正在尝试学习如何在 RSpec 中使用它们 有人可以发布一个关于如何使用 RSpec 模拟对象 API 的示例 hello RSpec Mock 对象世界类型示例 或链接 或任何其他参考 吗 以下是我在 Rails 应
  • 绘制带有 GPS 标记的地图并将该图像保存到文件中

    我有一些 GPS 位置记录 我想将其绘制到地图中 例如 OpenStreetMap 并将其保存为图像文件 我正在使用Python 我发现了osm GPS 地图 http nzjrs github com osm gps map 作为进行可视
  • 多线程并发队列

    我对多线程概念很陌生 我需要将一定数量的字符串添加到队列中并使用多个线程处理它们 使用ConcurrentQueue这是线程安全的 这是我尝试过的 但是添加到并发队列中的所有项目都不会被处理 仅处理前 4 项 class Program C
  • JavaScript 的 String strip() ? [复制]

    这个问题在这里已经有答案了 如何从字符串中去除前导和尾随空格 例如 dog 应该成为 dog 用这个 if typeof String prototype trim undefined String prototype trim funct
  • 空到布尔 IValueConverter 不工作

    如何使用 IValueConverter 将空值转换为布尔值 我正在使用 wpf 尝试显示一堆布尔值 在复选框中 创建新记录时 这些值为空 并在复选框中显示为 不确定 我希望空值出现并保存为 假 值 我尝试创建一个 NullToBoolea