Encontrar una casilla de verificación particular de la lista de casillas de verificación en wpf

Mi código es el siguiente

      <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>

Ahora, en el código detrás, necesito desmarcar la casilla de verificación particular con MarketId como 8 de la lista chkbxRefMarket. Como puede ver en la casilla de verificación del código, tendrá CommandParameter, Tag as MarketId.

¿Cómo puedo encontrar la casilla de verificación particular con esa identificación de mercado en la lista?

preguntado el 22 de mayo de 12 a las 10:05

1 Respuestas

¿Por qué no simplemente encontrar el artículo correcto y establecer su Checked propiedad. El CheckBox asociado está vinculado a esa propiedad y se desactivará automáticamente.

El siguiente código asume que su clase de elemento de datos es MyItem.

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

if (item != null)
{
    item.Checked = false;
}

contestado el 22 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.