C# WPF ListBox 复选框绑定 IsChecked 到字段并 IsSelected?

2024-03-23

我试图将复选框绑定到字段,但也触发复选框的 IsSelected。

这是与数据绑定一起使用的列表框设置

<ListBox x:Name="lstExclude"  Grid.Column="2" SelectionMode="Single" >
  <ListBox.ItemTemplate>
    <DataTemplate>
      <CheckBox  Content="{Binding Text}" 
          IsChecked="{Binding Checked ,Mode=TwoWay}"/>
      </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

这是与绑定相关的代码

public MainWindow()
{
    InitializeComponent();

    List<CheckBoxListItem> items1 = new List<CheckBoxListItem>();
    items1.Add(new CheckBoxListItem(true, “home”));
    items1.Add(new CheckBoxListItem(false, “work”));
    items1.Add(new CheckBoxListItem(true, “cell”));
    lstExclude.ItemsSource = items1;
}

public class CheckBoxListItem
{
   public bool Checked { get; set; }
   public string Text { get; set; }

   public CheckBoxListItem(bool ch, string text)
   {
     Checked = ch;
     Text = text;
    }
}

这会正确绑定复选框选中的值,但是如果我单击复选框(选中或未选中),我希望它选择该项目,所以我尝试这样做

<ListBox x:Name="lstExclude"  Grid.Column="2" SelectionMode="Single" >
  <ListBox.ItemTemplate>
    <DataTemplate>
      <CheckBox  Content="{Binding Text}" 
          IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected}"/>
      </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

因此,这给了我单击复选框(选中或取消选中)的结果,它将选择该项目。现在的问题是,当我添加项目时,“已检查”字段未绑定。

如何使复选框既绑定到 Checked 字段又让 IsSelected 起作用?


将两个 UI 属性绑定到Checked对象模型属性?

<ListBox.ItemContainerStyle>
    <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="IsSelected" Value="{Binding Checked, Mode=OneWay}"/>
    </Style>
</ListBox.ItemContainerStyle>

<ListBox.ItemTemplate>
   <DataTemplate>
      <CheckBox Content="{Binding Text}" IsChecked="{Binding Checked}"/>
   </DataTemplate>
</ListBox.ItemTemplate>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# WPF ListBox 复选框绑定 IsChecked 到字段并 IsSelected? 的相关文章

随机推荐

  • 自定义架构名称的宏不适用于 dbt 包

    我在 dbt 包中使用自定义架构名称时遇到问题 我使用中提供的宏数据库测试文档 https docs getdbt com docs building a dbt project building models using custom s
  • 如何使用 HQL 返回 Map

    我有一张桌子 允许 id name desc 我现在在做什么 是进行返回权限对象的查询 然后以编程方式将值放入映射中 1 但我想知道是否可以制作 HQL 如果不可能 则制作本机 sql 来选择权限ID 权限名称并将它们返回到地图中 2 是否
  • 为什么 Azure Function v2 无法绑定到 CloudTable?

    我正在尝试在 Visual Studio 2019 中运行 HTTP 触发的 v2 函数 应该是写出它的输出存储到名为 历史记录 的 Azure 存储表中 我用以下方法装饰了我的函数 return Table history 我让它返回一个
  • 无法反序列化 ActorRef 以将结果发送到不同的 Actor

    我开始使用 Spark Streaming 来处理我收到的实时数据源 我的场景是 我有一个使用 with ActorHelper 的 Akka actor 接收器 然后我让 Spark 作业执行一些映射和转换 然后我想将结果发送给另一个 a
  • 即使未移动,Motionevent Action_MOVE 仍会持续触发 X 和 Y

    我正在尝试一个简单的程序 如果移动的话 它会发出声音 所以一开始我就下了 播放声音 1 从那时起 每一个动作都会持续播放声音 在计数 4 时 我已经从头开始播放了 问题是 当我不移动手指并将其放在同一个地方时 声音仍然保持 1 x 1 计算
  • 有没有办法自动将Matlab 中的结果或数据导入到Mathematica 中?

    有没有办法将结果或数据 例如矩阵 从Matlab导入到Mathematica自动地 或者有什么方法可以先运行Matlab程序 然后运行Mathematica程序自动地 感谢您提供任何有用的答案 至少有三种方法可以解决这个问题 通过 Java
  • Actors 中 future 的执行上下文

    我有一个 Actor 并且在某些消息上我正在运行一些返回 Future 的方法 def receive Receive case SimpleMessge gt val futData Future Int futData map data
  • json_encode 输出对象而不是某些元素的数组

    我有这个数组 我想将其编码为 json Array 0 gt Array 0 gt Hour 1 gt bteam pvp 2 gt crackpack 3 gt tppi 4 gt agrarian plus 5 gt agrarian2
  • protobuf 取出部分数据的安全性如何?

    在没有任何加密的情况下 如果接收者拥有序列化的 Protobuf 文件 但没有生成的 Protobuf 类 他们无权访问定义其结构的 proto 文件 他们是否有可能获取 Protobuf 中的任何数据来自二进制文件 如果他们有权访问 pr
  • CFBundleVersion 必须高于以前的版本

    我正在提交我的一个应用程序的更新 我已经用我开发的许多不同的应用程序完成了数十次这样的操作 但是这个应用程序由于某种奇怪的原因而失败了 我存档我的应 用程序 然后尝试验证存档并收到以下错误消息 该捆绑包无效 Info plist 文件中的关
  • 在 python 中生成非子进程

    我需要在 python 中创建一个进程 允许调用进程在子进程仍在运行时退出 什么是有效的方法来做到这一点 注意 我在 UNIX 环境上运行 在类 Unix 操作系统中 终止父进程不会终止子进程 因此您不需要执行任何特殊操作 只需启动你的子流
  • React'findNodeHandle 方法停止工作

    升级到后0 26 0 rc版本 这一行 React findNodeHandle this refs myRef 抛出此错误消息 未处理的 JS 异常 react2 default findNodeHandle 不是 功能 我用这个导入 R
  • 在父类中访问子类变量

    在父类中访问子类的变量是否正确 这是一种好的 OOP 方法吗 我不需要创建 Animal 类的实例 但如果我愿意的话 make sound方法会提高AttributeError 这让我很困扰 class Animal def make so
  • Spring Boot thymeleaf 图像

    我正在尝试开发用于发送电子邮件的 Spring Boot 应用程序 一切都很好 但是在模板 thymeleaf 中 当我尝试添加图像时 它显示错误 这是我的 template html 的一个片段 div h2 title h2 div
  • 以当前区域设置和货币设置价格格式

    I use product gt getPrice 获得未格式化的价格 我可以用ajax计算 数量X价格 我想以当前区域设置和货币重新格式化总计 我怎样才能做到这一点 我认为谷歌可以回答你的问题 看看http blog chapagain
  • 如何找到 numpy 数组列中的最大值?

    我可以找到这个问题的很多排列 但不是这个 相当简单 如何找到 numpy 数组的特定列的最大值 以最Pythonic的方式 a array 10 2 3 4 5 6 我想要的是第一列和第二列中的最大值 这些是x y坐标 我最终需要每个形状的
  • 滚动连接:向前和向后滚动

    data table太棒了 因为我可以做滚动连接 甚至可以做滚动连接组内 library data table set seed 42 metrics lt data frame ID c rep 1 10 rep 2 5 rep 3 5
  • 使用自定义对象建议创建 GWT SuggestOracle

    我正在尝试将下拉框小部件转换为 SuggestionBox 因为当前的下拉菜单有 100 多个选项 不过 您似乎只能将字符串建议添加到 SuggestOracle 中 我需要能够添加一个自定义对象 其中包含与数据库中的记录匹配的描述和 ID
  • 使用 Jackson 进行非对称序列化和反序列化

    我正在使用 Jackson 来序列化和反序列化 RESTful API 的数据 我想要一个 REST 资源 comments 允许发布评论以及获取评论列表 这是发布内容的 简化的 示例 comments text Text author P
  • C# WPF ListBox 复选框绑定 IsChecked 到字段并 IsSelected?

    我试图将复选框绑定到字段 但也触发复选框的 IsSelected 这是与数据绑定一起使用的列表框设置