2

我尝试将控件的属性绑定Tag到控件的Visibility属性,但在 VS 中收到以下错误:

你调用的对象是空的

XAML 如下所示:

<RadioButton GroupName="NavButtonSide" 
             Tag="7"  
             Visibility="{Binding Path=Tag, 
                                  Converter={StaticResource ControlTagVisibilityConverter}, 
                                  RelativeSource={RelativeSource Mode=Self}}"/>

谁能告诉我如何解决它?

4

1 回答 1

4

你的装订没什么问题。这对我来说很好;

<Window.Resources>
    <local:ControlTagVisibilityConverter x:Key="ControlTagVisibilityConverter" /> 
</Window.Resources>

<RadioButton 
    Tag="7" 
    Visibility="{Binding Path=Tag, 
        Converter={StaticResource ControlTagVisibilityConverter}, 
        RelativeSource={RelativeSource Mode=Self}}"/>

ControlTagVisibilityConverter.cs

public class ControlTagVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var valueAsString = (string) value;
        var valueAsInt = int.Parse(valueAsString);

        switch (valueAsInt)
        {
            case 7:
                return Visibility.Visible;
            default:
                return Visibility.Hidden;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
于 2013-03-07T12:19:55.913 回答