我的代码如下
<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的特定复选框。
答案 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;
}