Mam dwa User Control's
siedzi w głównej .Zastępowanie UserControl przez właściwość
tylko jeden z nich powinien znajdować się w głównej części.
po zmianie pewnych właściwości w ViewModel
, zmienić je tak:
<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>
Kiedy zmienić właściwość do False
idzie do UserControl1
bez problemów, ale kiedy go zmienić na True
istnieją problemy z wyświetlaczem i tylko wtedy, gdy poruszam się między ekranami, które pasują, jako tymczasowe rozwiązanie, stworzyłem zdarzenie za każdym razem, gdy UserControl powinien zmienić się z 1 na 2. Po uruchomieniu tego zdarzenia usuwam główny plik UserControl
i tworzę go ponownie.
Ale moje pytanie brzmi, dlaczego kiedy zmieniam na jedno, nie muszę ponownie tworzyć, a kiedy zmienię na dwie, może potrzebować?
Nie daj mi żadnych pomysłów, jak rozwiązać ten problem (sam to zrobiłem), chcę wyjaśnić, dlaczego tak się dzieje, to mnie interesuje.
Co masz na myśli przez "problemy z wyświetlaniem?" Czy możesz pokazać zrzut ekranu? –
@DanPuzey, moja intencja: nie jest wyświetlana na ekranie tak, jak powinna być wyświetlana, wygląda na to, że utknął w poprzednim usercontorolu ("UserControl1"), nie mam już do niego dostępu (kliknie przyciski w UserCotrol nigdzie się nie wybiera, nie pierwszy, a nie drugi) –
Jeśli zminimalizujesz i przywrócisz okno, które sterowanie jest wyświetlane?Zastanawiam się, czy z jakiegoś powodu zawartość się zmienia, ale okno nie jest ponownie wysyłane. –