Ho due User Control's
seduto nell'unità principale UserCotrol
.Sostituzione UserControl per proprietà
solo uno di essi dovrebbe essere nel principale.
quando si modificano alcune proprietà nel ViewModel
, li cambio in questo modo:
<UserControl>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Content">
<Setter.Value>
<local:UserControl1/>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsTwo}" Value="True">
<Setter Property="Content">
<Setter.Value>
<local:UserControl2/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</UserControl>
Quando cambio la proprietà per False
va a UserControl1
senza problemi, ma quando lo cambio a True
, ci sono problemi con il display e solo quando mi muovo tra gli schermi si adatta, come soluzione temporanea, ho creato eventi ogni volta che UserControl dovrebbe cambiare da 1 a 2. Quando viene eseguito quell'evento, elimino lo UserControl
principale e lo creo di nuovo.
Ma la mia domanda è perché quando cambio a uno non ho bisogno di ricreare, e quando ne cambio a due ho bisogno?
Non darmi alcuna idea su come risolvere questo problema (l'ho fatto io stesso), voglio spiegare perché questo sta accadendo, questo è ciò che mi interessa.
Cosa intendi per "problemi con il display?" Puoi mostrare uno screenshot? –
@DanPuzey, la mia intenzione: non viene visualizzato sullo schermo come dovrebbe essere visualizzato, sembra che sia bloccato con il precedente usercontorol ('UserControl1'), anche io non posso più accedervi, (clic sui pulsanti in UserCotrol non sta andando da nessuna parte, non il primo e non il secondo) –
Se si riduce a icona e si ripristina la finestra, quale controllo viene visualizzato?Mi chiedo se per qualche motivo il tuo contenuto stia cambiando, ma la finestra non sta eseguendo il rerendering. –