C# 将用户控件可见性绑定到valueconverter

C# 将用户控件可见性绑定到valueconverter,c#,c#-4.0,wpf-controls,C#,C# 4.0,Wpf Controls,我有一个ValueConverter,可以很好地处理元素,例如STACKPANEL。方法User.OwnsRight(Int32)返回true或false [ValueConversion(typeof(object), typeof(System.Windows.Visibility))] public class ConverterUserRightVisibility : IValueConverter { public object Convert(object value, T

我有一个ValueConverter,可以很好地处理元素,例如STACKPANEL。方法User.OwnsRight(Int32)返回true或false

[ValueConversion(typeof(object), typeof(System.Windows.Visibility))]
public class ConverterUserRightVisibility : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        bxSuite.Base.Objects.User locUser = (bxSuite.Base.Objects.User)value;

        if (parameter == null) return System.Windows.Visibility.Visible;
        if (locUser == null) return System.Windows.Visibility.Visible;

        if (locUser.OwnsRight(System.Convert.ToInt32(parameter)))
        {
            return System.Windows.Visibility.Visible;
        }
        else
        {
            return System.Windows.Visibility.Collapsed;
        }

    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        System.Windows.Visibility locVisibility = (System.Windows.Visibility)value;
        if (locVisibility == System.Windows.Visibility.Hidden || locVisibility == System.Windows.Visibility.Collapsed)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}
因此,这个XAML非常有效:

<StackPanel Visibility="{Binding Path=User, Converter={StaticResource ConverterUserRightVisibility}, ConverterParameter=4}"></StackPanel>

但是如果我将我的一个用户控件的可见性绑定到这个转换器,转换器甚至不会被触发。UserControl本身工作正常

<my:MenuButtonLarge Visibility="{Binding Path=User, Converter={StaticResource ConverterUserRightVisibility}, ConverterParameter=4}"/>

你知道为什么吗?感谢您的帮助!非常感谢


编辑:我尝试了另一个转换器,只是在标签控件上设置文本。工作正常,但是如果我在usercontrol的Textproperty(dependency属性)上使用它,那么使用ConverterParameter的转换器不会被触发吗?我遗漏了什么?

即使您更改了
User
的值?如何设置数据上下文?不,对不起。
用户的更改
对StackPanel有效,对用户控制没有影响。另外,
Binding.Mode
不会改变任何东西。
DataContext=“{Binding RelativeSource={RelativeSource Self}}”
在使用UserControl的窗口中