Ich verwende BooleanToVisibilityConvertor zum Manipulieren der Sichtbarkeit von TextBlock in einem ListBox DataTemplate.Kann ich mehr als einen Konverter deklarieren? WP8
Hier ist meine XAML-Code:
<phone:PhoneApplicationPage.Resources>
<Converters:BooleanToVisibilityConvertor x:Key="booleanToVisibilityConvertor"/>
</phone:PhoneApplicationPage.Resources>
<TextBlock Grid.Row="2" HorizontalAlignment="Right" Padding="0,0,7,0" Visibility="{Binding AverageConsumption, Converter={StaticResource booleanToVisibilityConvertor}}">
<Run Text="{Binding AverageConsumption}"/>
<Run Text="l./100 km."/>
</TextBlock>
Und der Code hinter:
public class BooleanToVisibilityConvertor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
{
if (value != null)
{
if (!string.IsNullOrEmpty(value.ToString()))
{
return Visibility.Visible;
}
}
return Visibility.Collapsed;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Dies funktioniert korrekt, aber ich brauche noch eine (umgekehrt) Wandler für einen anderen Textblock auf derselben platziert Position (Grid.Row = "2" HorizontalAlignment = "Right") mit statischem Text = "Partial Tanken", also wenn {Binding AverageConsumption} nicht null oder leer ist, wird zuerst TextBlock ungültig und der zweite wird kollabiert und umgekehrt. Etwas wie folgt aus:
class BooleanToVisibilityConvertorReversed : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
{
if (value != null)
{
if (!string.IsNullOrEmpty(value.ToString()))
{
return Visibility.Collapsed;
}
}
return Visibility.Visible;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Ich habe versucht, einen anderen Konverter in XAML zu erklären:
<phone:PhoneApplicationPage.Resources>
<Converters:BooleanToVisibilityConvertor x:Key="booleanToVisibilityConvertor"/>
<Converters:BooleanToVisibilityConvertorReversed x:Key="booleanToVisibilityConvertorReversed"/>
</phone:PhoneApplicationPage.Resources>
bekam aber eine Ausnahme auf InitializeComponent(): 'Eine erste Chance Ausnahme des Typs' System.Windows. Markup.XamlParseException 'in System.Windows.ni.dll aufgetreten' Wie kann ich das lösen?
Warum denken Sie, dass diese Linie ein Täter ist? – ixSci
Ich denke, der Grund ist hier: und es kann einfach nicht initialisieren die Seite. Ich habe den anderen Konverter entfernt und habe nur mit diesem versucht, habe aber immer noch die selbe Ausnahme. –
Und wenn Sie es entfernen, wird der Fehler weg sein? Vielleicht ist ein verstecktes Symbol da? Versuchen Sie es mit der IntelliSense-Hilfe neu einzugeben – ixSci