0

我的代码如下

      <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 的特定复选框正如您从代码中看到的那样,复选框将具有 CommandParameter ,标记为 MarketId

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

4

1 回答 1

0

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

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

IEnumerable<MyItem> items = lstbxRefMarket.Items.OfType<MyItem>();
MyItem item = items.FirstOrDefault(i => i.MarketId == 8);

if (item != null)
{
    item.Checked = false;
}
于 2012-05-22T09:42:22.830 回答