C# 未执行BooleanToHiddenVisibility方法
MainWindow.XAML中的我的XAML: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
<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");
}
}
}