Bindung Sichtbarkeit in XAML zu einem Visibility-Eigenschaft
Ich gesehen habe im internet schon ein paar Beispiele für das binden eines boolean, um die Visibility-Eigenschaft auf ein Steuerelement in XAML. Die meisten der guten Beispiele verwenden eine BooleanToVisibiliy Konverter.
Ich möchte nur noch die Visible-Eigenschaft für das Steuerelement zu binden, um ein System.Windows.Visibility-Eigenschaft in der code-behind -, aber es scheint nicht arbeiten zu wollen.
Dies ist mein XAML:
<Grid x:Name="actions" Visibility="{Binding Path=ActionsVisible, UpdateSourceTrigger=PropertyChanged}" />
Dies ist der code für die Eigenschaft:
private Visibility _actionsVisible;
public Visibility ActionsVisible
{
get
{
return _actionsVisible;
}
set
{
_actionsVisible = value;
}
}
In den Konstruktor der Fenster -, ich habe auch diesen Anruf:
base.DataContext = this;
Wenn ich das update entweder ActionsVisible oder diese.Aktionen.Die Sichtbarkeit, die der Staat nicht übertragen. Irgendwelche Ideen, was könnte schief gehen?
- Sie haben Zugriff auf alle Steuerelemente auf den thread, auf dem Sie erstellt wurden. Sie können die update-Steuerelemente aus anderen threads, aber du musst marshall das update über den UI-thread mit dem WPF Dispatcher. Diese Artikel sollte helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist, dass die WPF kann nicht wissen, dass Ihre ActionsVisible Eigenschaft geändert hat, da hast du nicht mitgeteilt, die Tatsache.
Ihre Klasse die INotifyPropertyChanged implementieren müssen, die sich dann in Ihrem set-Methode für ActionsVisible Sie benötigen zum auslösen des PropertyChanged-Ereignis mit ActionsVisible wie der name der Eigenschaft, die geändert wurde.
Hoffe, das hilft...
Ändern Sie Ihre Eigenschaft auf eine DependencyProperty. Diese übernehmen für Sie die Aktualisierung für Sie.
Schreiben:
NotifyPropertyChanged("ActionsVisible")