Ho appena notato questo problema, ogni volta che seleziono un espansore la cui casella di controllo è genitore attiva gli eventi selezionati/non selezionati anche se la casella di controllo non è selezionata.La casella di controllo selezionata e gli eventi non selezionati vengono attivati quando seleziono un expander
Ecco un file .gif che mostra che si sta verificando. Il numero in alto a destra rappresenta il numero di caselle di controllo spuntate, ho impostato per contare solo su e giù ogni volta che una casella è selezionata o deselezionata. Il contatore in sé non è la preoccupazione, però, solo un modo per dimostrarlo.
Per ciascuna casella di controllo, gli eventi Checked
e UnChecked
indicano un metodo di mia scelta.
che cosa sta causando questo accada, e come posso fare per prevenirlo?
Edit: La XAML
<Expander Loaded="VerifyExpanderLoaded" ExpandDirection="Down" IsExpanded="True" FontSize="14" FontWeight="Bold" Margin="5" BorderThickness="1" BorderBrush="#FF3E3D3D">
<Expander.Header>
<DockPanel RenderTransformOrigin="0.5,0.5" LastChildFill="False" Margin="0" HorizontalAlignment="Stretch">
<TextBlock Text="Verify Caller and Account" DockPanel.Dock="Left" VerticalAlignment="Center" Margin="0"/>
<Button DockPanel.Dock="Right" Margin="1,0" Click="VerifyUncheckAll">
<TextBlock Text="Uncheck All" Margin="1,0" FontSize="12" FontWeight="Normal"/>
</Button>
<Button DockPanel.Dock="Right" Margin="1,0" Click="VerifyCheckAll">
<TextBlock Text="Check All" FontSize="12" FontWeight="Normal" Margin="1,0"/>
</Button>
<TextBlock x:Name="VerifyCheckboxCount" Text="0/0" DockPanel.Dock="Right" VerticalAlignment="Center" FontSize="16" FontWeight="Bold" Margin="0,0,10,0"/>
</DockPanel>
</Expander.Header>
<ListBox Background="{x:Null}" BorderBrush="{x:Null}">
<CheckBox x:Name="Authentication_CallerName_Checkbox" HorizontalAlignment="Center" Margin="10,5,0,0" Grid.ColumnSpan="2" FontSize="12" VerticalAlignment="Center" Checked="VerifyCheckBoxChecked" Unchecked="VerifyCheckBoxChecked">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="Caller's Name" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14"/>
<StackPanel>
<Expander ExpandDirection="Right" Margin="5,2,0,0" VerticalAlignment="Bottom" HorizontalAlignment="Right" FontSize="14">
<TextBlock Text="Obtain Callers Name " HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center" FontWeight="Normal" FontStyle="Italic">
<Hyperlink x:Name="AuthenticationWikiLink" NavigateUri="[Redacted]" RequestNavigate="ExternalLinks">
Link
</Hyperlink>
</TextBlock>
</Expander>
</StackPanel>
</StackPanel>
</CheckBox>
possiamo avere qualche codice per favore? ci sono problemi vincolanti quando la casella di controllo è posizionata nell'espansione ... – Muds
Perché è necessario evitare che ciò accada? Che problema sta causando? –
Aggiunto in XAML. David, perché sta facendo in modo che il contatore contini la casella di spunta come selezionata o deselezionata in base alla sua proprietà IsChecked quando scatta l'evento. So che ci sono modi per aggirare questo e altri metodi che potrei usare per determinare se è stato controllato o meno. Tuttavia questo è oltre lo scopo di questa domanda. –