So habe ich eine ProgressRing
und eine TextBlock
und ich versuche, diesen grundlegenden Hack zu implementieren, der beide Elemente anzeigen soll, wenn TextBlock Text einen Wert zugewiesen bekommt (alles andere als Null), Andernfalls sollten beide Elemente ausgeblendet werden, wenn TextBlocks Text null ist.Wie man einen Konverter von Zeichenkette zu Sichtbarkeit implementiert
Mein Xaml sieht wie folgt aus. TextBlocks Text ist an MessageForProgressRing
gebunden und seine Sichtbarkeit ist sowohl an MessageForProgressRing
als auch an TargetNullValue
gebunden. Das gleiche gilt für mich ProgressRing
:
<StackPanel Panel.ZIndex="100" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<mahControls:ProgressRing Height="50" IsActive="True" Width="50" Visibility="{Binding MessageForProgressRing, TargetNullValue=Collapsed, FallbackValue=Visible}" Foreground="White" Margin="0,0,0.2,0" />
<TextBlock Text="{Binding MessageForProgressRing}" Visibility="{Binding MessageForProgressRing, TargetNullValue=Collapsed, FallbackValue=Visible}"/>
</StackPanel>
in Code Dann hinter ich die Eigenschaft, nur auslösen und es Wert auf einige Schaltfläche Ereignishandler zuweisen:
private void closeApplicationButtonTask()
{
((CaptureViewModel)DataContext).MessageForProgressRing = "Closing... ";
Application.Current.MainWindow.Close();
}
Doch meiner ViewModelBase
(Eltern aller Meine Ansicht Modelle) es erscheint ein Fehler auf OnPropertyChanged
Sprich:
Angeforderter Wert 'Closing ...' wurde nicht gefunden.
Ich glaube, ich brauche einen Konverter, weil Sichtbarkeit-Closing...
rechts binded ist? Wenn ja, wie kann ich es erreichen?
P.S Ich konnte es nicht in OnPropertyChanged
tun, weil ich die value
nicht sehe, um es zuzuweisen. Ich denke auch nicht, dass es eine gute Idee ist, da es vor, während und nach der Ausführung große Zeit genannt wird.
Haben Sie irgendwelche Nachforschungen dazu gemacht? Eine einfache Google-Suche nach "wpf IValueConverter" würde Ihnen viele Beispiele und Tutorials wie [dieses] (http://wpftutorial.net/ValueConverters.html) bringen. –
@Charles Ja, aber ich weiß, was ist das Schlüsselwort (IValueConverter?). Danke, ich sehe es an –
Meine Suche war wahrscheinlich zu spezifisch, das Tutorial, mit dem ich verlinkt habe, ist der erste Treffer für 'wpf converter'. Du kannst mir vielleicht verzeihen, dass du denkst, du hättest dich nicht damit befasst! –