我尝试将控件的 Tag
属性绑定(bind)到控件的 Visibility
属性,但在 VS 中收到以下错误:
object reference not set to an instance of an object
XAML 如下所示:
<RadioButton GroupName="NavButtonSide"
Tag="7"
Visibility="{Binding Path=Tag,
Converter={StaticResource ControlTagVisibilityConverter},
RelativeSource={RelativeSource Mode=Self}}"/>
谁能告诉我怎么解决吗?
最佳答案
你的绑定(bind)没有问题。这对我来说效果很好;
<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();
}
}
关于wpf - 为什么绑定(bind)到 "Self"不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15269224/