Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未执行BooleanToHiddenVisibility方法_C#_Wpf_Xaml - Fatal编程技术网

C# 未执行BooleanToHiddenVisibility方法

C# 未执行BooleanToHiddenVisibility方法,c#,wpf,xaml,C#,Wpf,Xaml,MainWindow.XAML中的我的XAML: <Window.Resources> <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> </Window.Resources> <r:RibbonGroup x:Name="LockDataRibbonGroup" Header="Data Editing" Visibility="{Binding IsV

MainWindow.XAML中的我的XAML:

<Window.Resources>
  <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>

<r:RibbonGroup x:Name="LockDataRibbonGroup" Header="Data Editing" Visibility="{Binding   IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}">

class BooleanToHiddenVisibility : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is Boolean)
        {
            return ((bool)value) ? Visibility.Visible : Visibility.Hidden;
        }

        return value;
    }
    object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        Visibility visibility = (Visibility) value;
        if (visibility == Visibility.Visible)
            return true;
        else
            return false;

    }
}
这不管用。当我在Conver和ConvertBack上设置断点时,它们从未被击中。我错过了什么?这与能见度有关吗。我的BooleantHiddenVisibility类位于Helpers文件夹中。My MainWindow.xaml位于视图文件夹中。
谢谢

您已将类声明为“类BooleanToHiddenVisibility:IValueConverter”,但您使用了内部“BooleanToVisibilityConverter”

替换如下:

<Window.Resources>
  <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>

为此:

<Window.Resources>
  <BooleanToHiddenVisibility x:Key="BooleanToHiddenVisibility " />
</Window.Resources>


在XAML中使用x:Key=“booleanthiddenVisibility”作为键,当然还有implement

您忘记指出属性已更改:

private bool _isVisible = true;
public bool IsVisible
{
    get { return _isVisible; }
    set
    {
        if (value != _isVisible)
        {
            _isVisible = value; 

            this.RaisePropertyChanged("IsVisible");
        }
    }
}

RaisePropertyChanged
将是从中引发
PropertyChanged
事件的方法

我还在玩MVVM Light toolkit。有没有办法使用mvvm工具包来避免此实例的RaisePropertyChanged?使用mvvm Light时,可以将代码行更改为set{set(()=>IsVisible,ref_IsVisible,value);}。或者set{set(“IsVisible”,ref_IsVisible,value);}。这就是我要找的。
private bool _isVisible = true;
public bool IsVisible
{
    get { return _isVisible; }
    set
    {
        if (value != _isVisible)
        {
            _isVisible = value; 

            this.RaisePropertyChanged("IsVisible");
        }
    }
}