从 wpf 中的复选框列表中查找特定复选框

本文关键字:复选框 查找 列表 wpf | 更新日期: 2023-09-27 18:35:00

我的代码如下

      <ListBox x:Name="lstbxRefMarket" Margin="5,5,5,5" BorderThickness="0" Height="100" VerticalAlignment="Stretch">
        <ListBox.ItemTemplate>
            <HierarchicalDataTemplate>
                <CheckBox Name="chkbxRefMarket" Content="{Binding Market}" CommandParameter="{Binding MarketId}" Tag="{Binding MarketId}" IsChecked="{Binding Checked}" Checked="chkbxRefMarket_Checked" Unchecked="chkbxRefMarket_Unchecked"  Foreground="Blue"/>
            </HierarchicalDataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

现在在代码隐藏中,我需要从 chkbxRefMarket 列表中取消选中 MarketId 为 8 的特定复选框正如你从代码复选框中看到的,命令参数,标签作为市场ID

如何在列表中找到具有该市场 ID 的特定复选框。

从 wpf 中的复选框列表中查找特定复选框

为什么不简单地找到正确的项目并设置其Checked属性。关联的复选框绑定到该属性,并将自动取消选中。

下面的代码假定您的数据项类MyItem

IEnumerable<MyItem> items = lstbxRefMarket.Items.OfType<MyItem>();
MyItem item = items.FirstOrDefault(i => i.MarketId == 8);
if (item != null)
{
    item.Checked = false;
}