我在WPF项目的XAML中使用布尔转换器。我想禁用几个按钮,而#34; IsBusy"是真的。我绝对相信IsBusy正确地设置为true / false。我能够在没有转换器的情况下成功直接绑定到IsBusy。以下内容目前无效。我在实际的转换器类和"转换"中设置了断点。和" ConvertBack"方法永远不会被击中。这有什么不对?
IsEnabled="{Binding IsBusy, Converter={StaticResource InvertedBooleanConverter}}"
资源:
<Window.Resources>
<converters:InvertedBooleanConverter x:Key="InvertedBooleanConverter" />
</Window.Resources>
转换器:
xmlns:converters="clr-namespace:MyProject.Converters"
转换器:
namespace MyProject.Converters
{
[ValueConversion(typeof(bool), typeof(bool))]
public class InvertedBooleanConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
return !(bool)value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
}
答案 0 :(得分:4)
如果isBusy依赖属性?如果不是,改变形式IsBusy将不会传输到isEnable
答案 1 :(得分:1)
退一步检查绑定是否在正确的位置 - 添加<TextBlock Text="{Binding}" />
并确保它显示正确的类(包含IsBusy的类)。