我在一个wpf项目中,设计了一个usercontrol,里面我定义一个依赖属性IsShow(类型为Visibility)。用来控制界面上某个按钮(Button)是否可以显示,
就是将该button按钮的Visibility属性用绑定的方式绑定为IsShow。我在一个使用这个usercontrol的界面上,设置这个IsShow依赖属性为Hiden,但是没有效果,界面上依旧显示这个按钮
Visibility="{Binding IsShow,RelativeSource={RelativeSource AncestorType=UserControl}, Converter={StaticResource 自己的转换} ,ConverterParameter={自己的参数}}"
用Converter,绑定一个属性,
,根据属性返回相应的Visibility.visible 或者 Visibility.hidden
XAML:
Visibility="{Binding Flag,Converter={StaticResource n2c}}"
CS:
public int Flag { get; set; }
public class IntToBtnVisibilityConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int nValue = (int)value;
if (1 == nValue)
{
return Visibility.Hidden;
}
else if (2 == nValue)
{
return Visibility.Visible;
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}