So ändern Sie die Sichtbarkeit eines WPF-Steuerelements in ViewModel

8

Ich habe eine WPF-Anwendung, in der versucht wurde, MVVM-Muster und Prism 2 zu implementieren. Ich habe eine Benutzersteuerung, die ein Ereignis abonniert hat, das von einer anderen Benutzersteuerung ausgelöst wurde. Ich möchte die Sichtbarkeit einiger untergeordneter Elemente im abonnierenden Steuerelement ändern. Ereignisse werden ordnungsgemäß ausgelöst, auch wenn ich erfolgreich Daten an einige Elemente binden kann. Wie verbinde ich Visibility oder eine beliebige Stileigenschaft mit dem ViewModel und ändere sie dynamisch.

    
Raj 12.09.2009, 19:43
quelle

3 Antworten

23

Sie können eine boolesche Eigenschaft in Ihrem ViewModel haben und diese Eigenschaft an die Sichtbarkeitseigenschaft Ihrer Steuerelemente binden. Da Sie einen booleschen Wert zuweisen und die Visibility-Eigenschaft einen Visibility-Enumerationswert erwartet, müssen Sie das BooleanToVisibilityConverter Konvertierer, um die Konvertierung durchzuführen,

%Vor%

Hoffe, das hilft.

Ezequiel Jadib

    
Ezequiel Jadib 12.09.2009, 21:18
quelle
8

Obwohl das Hinzufügen einer booleschen Eigenschaft und die Verwendung eines Wertkonverters hilfreich sind, würde ich empfehlen, Ihrem ViewModel eine Eigenschaft vom Typ Visibility hinzuzufügen, z. B.

%Vor%

Der Vorteil dieser Methode ist, dass Sie nicht für jede Eigenschaft, die Sie visuell darstellen möchten, einen Konverter schreiben müssen (z. B. für einen Lagerbestand, der eine Beschriftung rot macht, wenn er unter 10 fällt, könnten Sie eine haben Konverter, den Sie einmal verwenden oder nur eine StockLabelBrush-Eigenschaft von Ihrer VM verfügbar machen)

    
Darren 24.04.2013 14:10
quelle
1
___ answer1416163 ___

Sie können eine boolesche Eigenschaft in Ihrem ViewModel haben und diese Eigenschaft an die Sichtbarkeitseigenschaft Ihrer Steuerelemente binden. Da Sie einen booleschen Wert zuweisen und die Visibility-Eigenschaft einen Visibility-Enumerationswert erwartet, müssen Sie das BooleanToVisibilityConverter Konvertierer, um die Konvertierung durchzuführen,

%Vor%

Hoffe, das hilft.

Ezequiel Jadib

    
___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ qstntxt ___

Ich habe eine WPF-Anwendung, in der versucht wurde, MVVM-Muster und Prism 2 zu implementieren. Ich habe eine Benutzersteuerung, die ein Ereignis abonniert hat, das von einer anderen Benutzersteuerung ausgelöst wurde. Ich möchte die Sichtbarkeit einiger untergeordneter Elemente im abonnierenden Steuerelement ändern. Ereignisse werden ordnungsgemäß ausgelöst, auch wenn ich erfolgreich Daten an einige Elemente binden kann. Wie verbinde ich Visibility oder eine beliebige Stileigenschaft mit dem ViewModel und ändere sie dynamisch.

    
___ tag123mvvm ___ Model-View-ViewModel (MVVM) ist ein Architekturentwurfsmuster zum Implementieren von Benutzerschnittstellen, das die Benutzeroberfläche (die Ansicht) von ihren Daten (dem Modell) über ihre Präsentationslogik (ihr ViewModel) trennt. ___ answer16194232 ___

Obwohl das Hinzufügen einer booleschen Eigenschaft und die Verwendung eines Wertkonverters hilfreich sind, würde ich empfehlen, Ihrem ViewModel eine Eigenschaft vom Typ Visibility hinzuzufügen, z. B.

%Vor%

Der Vorteil dieser Methode ist, dass Sie nicht für jede Eigenschaft, die Sie visuell darstellen möchten, einen Konverter schreiben müssen (z. B. für einen Lagerbestand, der eine Beschriftung rot macht, wenn er unter 10 fällt, könnten Sie eine haben Konverter, den Sie einmal verwenden oder nur eine StockLabelBrush-Eigenschaft von Ihrer VM verfügbar machen)

    
___ tag123prism ___ Prism ist ein Framework zum Erstellen von lose gekoppelten, wartbaren und testbaren XAML-Anwendungen in WPF, Windows 10 UWP und Xamarin Forms. ___ qstnhdr ___ So ändern Sie die Sichtbarkeit eines WPF-Steuerelements in ViewModel ___
James 19.03.2014 14:30
quelle

Tags und Links