WPF: Window und Visible und Converter
-
Hallo zusammen
Mein Fenster möchte ich gerne anhand einer boolschen Variablen sichtbar oder unsichtbar machen.
Dazu habe ich die Visibility an die Property Visible vom Typ bool gebunden.
Ebenfalls habe ich mir dazu einen BooleanToVisibilityConverter Resource angelegt.Den Converter definiere ich in den Resourcen des Fenster.
Wenn ich das nun aber so mache erhalte ich beim Start die Exception:
{"Cannot find resource named 'B2VConverter'. Resource names are case sensitive."}
Wo muss ich denn den Converter definieren, dass er bekannt ist?
-
Hier noch der Code
<Window x:Class="MyControl.Views.Windows.SaveRecipeWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="Gainsboro" BorderBrush="{StaticResource borderBrush}" BorderThickness="3" ShowInTaskbar="False" WindowStartupLocation="CenterOwner" WindowStyle="None" Visibility="{Binding Visible, Converter={StaticResource B2VConverter}}"> <Window.Resources> <ResourceDictionary> <BooleanToVisibilityConverter x:Key="B2VConverter" /> </ResourceDictionary> </Window.Resources> </Window>
-
Hi,
Ich vermute fast, dass du den Converter in der app.xaml definieren musst weil du nicht in der window Definition auf eine Ressource zugreifen kannst, die erst innerhalb des window definiert wird.
-
Wenn ich es aber in der app.xaml definiere findet er es angeblich auch nicht.
Muss ich die app.xaml noch bei der Seite hinzufügen. Also einen Verweis meine ich?
-
Führ mal einen kompletten Rebuild durch oder poste nochmal ein Minimalbeispiel, das funktioniert bei mir ohne Probleme.
-
Das Problem ist dass sich das Window in einer WPF Klassenbibliothek befindet. Und App.xaml in der auszuführenden WPF Anwendung befindet.
-
Ich denke das Problem liegt woanders. Er sagt zwar dass er den Converter nicht kennt. Findet ihn aber trotzdem. Habe mal einen eigenen Converter geschrieben und der wird aufgerufen.
Das Problem ist aber dass er nur einmal am Anfang aufgerufen wird.
Wenn ich das Poperty über einen Button ändere solange das Fenster geöffnet ist, wird das Visibilityproperty nicht mehr gesetzt. Wieso weiß ich nicht.
-
Zeig mal den Setter von der Property. Wird dort ein PropertyChanged Event ausgelöst?
-
Ja es wird ein PropertyChanged Event ausgelöst im Setter
-
Dann bleibt nur noch das Minimalbeispiel, ansonsten habe ich keine Idee was noch schief laufen kann..