我想将单个属性绑定到Visiblity的两个按钮。我正在使用BooleantoVisibility Converter。我可以根据Property值隐藏或显示按钮。我的问题是,我只想显示两个按钮中的一个。以下是我的代码。有没有办法使用“NOT”进行绑定,或者我必须创建一个新属性?
<telerik:RadButton Content="Close" x:Name="btnClose" Visibility="{Binding Path=IsNewRecord, Converter={StaticResource BoolToVisiblity}}" Command="{Binding CloseCommand}" CommandParameter="{Binding ElementName=ProductCombobox, Path=Text}"/>
<telerik:RadButton Content="Delete" x:Name="btnDelete" Visibility="{Binding Path=IsNewRecord, Converter={StaticResource BoolToVisiblity}}" Command="{Binding DeleteCommand}" CommandParameter="{Binding ElementName=ProductCombobox, Path=Text}"/>
答案 0 :(得分:2)
创建InvertBooleanToVisibility
转换器。将相同的属性绑定到两个转换器。
public class InvertBooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
var boolValue = (bool)value;
return boolValue ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
}
在XAML中
<UserControl.Resources>
<Converters:InvertBooleanToVisibilityConverter x:Key="InvertConverter"/>
</UserControl.Resources>
<telerik:RadButton Content="Delete" x:Name="btnDelete"
Visibility="{Binding Path=IsNewRecord, Converter={StaticResource InvertConverter}}"
Command="{Binding DeleteCommand}" CommandParameter="{Binding ElementName=ProductCombobox, Path=Text}"/>