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

时间:2012-05-22 09:19:58

标签: c# wpf checkbox

我的代码如下

      <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,Tag为MarketId

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

1 个答案:

答案 0 :(得分: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;
}