C# 如何实现BooltVisibilityConverter
在我的应用程序中,我想切换StackPanel中项目的可见性。我的Stackpanel包含一个图像和一个文本块。如何正确使用BooltVisibilityConverter切换文本块的可见性,并保存此设置以使用户受益 目前我有如下内容,尽管我有一些错误。重要提示,我需要使用ApplicationBar菜单项作为驱动文本框可见性切换的click事件 编辑 尽管文本块的可见性没有改变,但错误不再发生 XAML BooleanToVisibilityConverter的一个类C# 如何实现BooltVisibilityConverter,c#,xaml,windows-phone-7,windows-phone-8,converter,C#,Xaml,Windows Phone 7,Windows Phone 8,Converter,在我的应用程序中,我想切换StackPanel中项目的可见性。我的Stackpanel包含一个图像和一个文本块。如何正确使用BooltVisibilityConverter切换文本块的可见性,并保存此设置以使用户受益 目前我有如下内容,尽管我有一些错误。重要提示,我需要使用ApplicationBar菜单项作为驱动文本框可见性切换的click事件 编辑 尽管文本块的可见性没有改变,但错误不再发生 XAML BooleanToVisibilityConverter的一个类 //Error on B
//Error on BooleanToVisibilityConverter stating does not implement interface member 'System.Windows.Data.IValueConverter.Convert(object, System.Type, object, System.Globalization.CultureInfo)
public class BooleanToVisibilityConverter : IValueConverter
{
public class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo language)
{
return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo language)
{
return value is Visibility && (Visibility)value == Visibility.Visible;
}
}
试试这个:
public class BooleanToVisibilityConverter : IValueConverter
{
private object GetVisibility(object value)
{
if (!(value is bool))
return Visibility.Collapsed;
bool objValue = (bool)value;
if (objValue)
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
public object Convert(object value, Type targetType, object parameter, string language)
{
return GetVisibility(value);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
转换器已经实现了:这是我的:
public class BoolToVisConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value is Visibility && (Visibility)value == Visibility.Visible;
}
}
布尔人的形象看起来不错。我有一个非常类似的bool到可见性转换器的实现,它工作良好,没有错误。我认为错误源在其他地方..刚刚尝试了上面的转换器代码,它也适用于我。尝试移除转换器,看看错误是否仍然存在?只是为了确认它导致了错误。有时使用转换器,重建项目可能会起作用。试试看!!我确实重新启动并重建了项目,现在没有错误,尽管文本块的实际可见性没有显示/隐藏。这在Windows phoneif中不可用(值为bool&&(bool)value)是的,这样更好:)
public class BooleanToVisibilityConverter : IValueConverter
{
private object GetVisibility(object value)
{
if (!(value is bool))
return Visibility.Collapsed;
bool objValue = (bool)value;
if (objValue)
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
public object Convert(object value, Type targetType, object parameter, string language)
{
return GetVisibility(value);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
public class BoolToVisConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value is Visibility && (Visibility)value == Visibility.Visible;
}
}