Gegeben:Conditional Laden von WPF-Steuerelemente
<StackPanel>
<View:ArcController x:Name="control1" Visibility="{Binding Path=CanShowDateControl, Converter={StaticResource bool2VisibilityConverter}}" />
<my1:DateLabelView x:Name="control2" DataContext="{Binding Path=DateLabelViewModel}" Visibility="{Binding ElementName=ctrlTableToolbar, Path=DataContext.IsDateReadOnly, Converter={StaticResource bool2VisibilityConverter}}" />
</StackPanel>
Ich habe zwei Kontrollen (control1 und control2) in einem Stackpanel, und auf einmal will ich nur eines der Steuerelemente zeigen. Wie im Code gezeigt, wird die Sichtbarkeit der Steuerelemente von "IsDateReadOnly" und "CanShowDateControl" gesteuert. Und nach meiner Viewmodel-Logik ... CanShowDateControl =! IsReadOnly.
So, auf einmal werde ich nur eine der beiden Kontrollen zeigen.
Frage: Mein Problem ist, obwohl ich nur ein Steuerelement zu einer Zeit zeige, erstellt meine XAML Instanz beider Steuerelemente. Ist es möglich, eine Instanz nur für das Steuerelement zu erstellen, das ich zeige?
dass Geben Sie:
1) Ich möchte zum Anzeigen/Verbergen mit Bindung, so dass die Logik in meinem Viewmodel liegt. 2) Ich kann diese beiden Steuerelemente in einem Wrapper-Steuerelement behalten. Da ich es an verschiedenen Orten benutze.
Vielen Dank für Ihr Interesse.
Ist das Erstellen einer Instanz der beiden Steuerelemente so viel ein Problem? – ChrisF
@ChrisF: Da ich mehrere Instanzen dieses Steuerelements erstellt habe, würde dies die Speicherauslastung erheblich optimieren, wenn ich dafür sorgen könnte, dass dieses Steuerelement weniger Speicher belegt. –