Ich habe Probleme beim Binden der Sichtbarkeit eines ContentPresenters. Ich habe ein minimales Beispiel Fenster:WPF ContentPresenter konnte nicht gebunden werden Sichtbarkeit
In meinen Ressourcen ich die folgenden Datatemplate
definiert<DataTemplate x:Key="MyTemplate">
<Border Width="50" Height="50" Background="Red"/>
</DataTemplate>
Das Fenster enthält nur Stackpanel von einer roten und grünen gefüllt Grenze.
<StackPanel>
<ContentPresenter ContentTemplate="{StaticResource MyTemplate}" Visibility="{Binding Vis}"/>
<Border Width="50" Height="50" Background="Green" Visibility="{Binding Vis}"/>
</StackPanel>
Die Sicht ist im Datacontext verfügbar:
private Visibility _Vis;
public Visibility Vis
{
get
{
return _Vis;
}
set
{
_Vis = value;
OnPropertyChanged(nameof(Vis));
}
}
Anzeigen der Fenster, die beiden Grenzen sind untereinander dargestellt. Jetzt das Problem: Wenn ich die Sichtbarkeit ändern (OnPropertyChanged verwendet), ändert nur der grüne Rand die Sichtbarkeit. Der rote Rahmen, der das ContentTemplate verwendet, ändert seine Sichtbarkeit nicht. Beide Controls sind jedoch an die gleiche Eigenschaft gebunden!
- Ich versuchte es mit
Collapsed
undHidden
- kein Unterschied - Ich habe auch versucht
DataContext={Binding}
zum Content Zugabe - keinen Unterschied
Was ist das Problem ein Content und binde Es ist die Verwendung von Sichtweite?
Vielen Dank für Ihre Antworten!
ContentPresenter ist manchmal etwas Besonderes - können Sie es durch ein ContentControl ersetzen (Inhalt explizit binden, wenn Sie müssen) und sehen, ob es besser funktioniert? –