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.
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
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)
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
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.
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)